2016-12-13 6 views
0

私は、ページがロードされる直前にAJAXを送信し、ajaxの後にこのように同じページでコールします。ページのロード時にajaxを送信する

<input type="text" class="hidden" id="storeID" value="<?php echo $_GET['store']; ?>"> 
$(document).ready(function() 
{ 
var store = $("#storeID").val(); 
$.ajax(
{ 
    url: '../user-style.php', 
    method: 'POST', 
    data: {"store":store} 
}); 
}); 
<link rel="stylesheet" href="../user-style.php" media="screen" /> 

ユーザーstyle.php

if(isset($_POST['store'])) 
{ 
$stmtgetstyle = $mysqli->prepare("SELECT * FROM store_style_configuration WHERE store_id=?"); 
$stmtgetstyle->bind_param("i", $_GET['store']); 
$stmtgetstyle->execute(); 
$getstyle = $stmtgetstyle->get_result(); 
$style = $getstyle->fetch_assoc(); 
$stmtgetstyle->close(); 
} 

しかし、ユーザー-style.phpは、任意のデータを取得していないされていませんどちらもデータベースが来ているから任意のものです。

答えて

1

CSSの内容を取り出して戻したいと思うでしょう。今、あなたは動的jQuery Objectにそれを置くことができます。

$.ajax({ 
    url: '../user-style.php', 
    method: 'POST', 
    data: {"store":store}, 
    success: function(data) { 
     var $cssStyles = $('<style/>'); 
     $cssStyles.attr('type', 'text/css'); 
     $cssStyles.html(data); 
     $cssStyles.appendTo($('head')); 
    } 
}); 

もう一つの方法は、$_GETでURLパラメータを経て現在のスクリプトにそれを渡すために、次のようになります。

<link rel="stylesheet" href="../user-style.php?store=store" media="screen" /> 

それともjQuery$_GETと:

$(document).ready(function() { 
    var store = $("#storeID").val(); 
    var $cssStyles = $('<style/>'); 
    $cssStyles.attr({ 'type': 'text/css', 'href': '../user-style.php?store=' + store }); 
    $cssStyles.appendTo($('head')); 
}); 
+0

兄弟ありがとう!私のCSSは現在動作しています:) – Stan

0

あなたはajax呼び出しでデータをポストしていますが、変数$_GET['store']にバインドしています。それを$_POST['store']に変更するだけでうまくいくはずです。これはまた、notice errorを送って、undefined index 'store' in $_GET on line ...があることを示しているはずです。これは、開発中にerror_reporting(E_ALL)を有効にするのが良い理由です。

編集:実際には、参照によって変数を使用するときに変数が存在しない場合はエラーをスローしないため、実際には2番目の考えではエラーが発生していない可能性があります。私はこれが未定義の配列インデックスについて同じであると仮定します。

関連する問題