2016-12-13 58 views
0

所以我在加載頁面之前提交我的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')); 
    } 
}); 

另一種方法是將其通過URL參數與$_GET傳遞到當前腳本:

<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)的原因。

編輯:實際上,第二個想法是,它可能沒有引發錯誤,因爲當通過引用使用變量時,創建一個變量(如果它不存在並且不會引發錯誤)。我認爲這對未定義的數組索引是一樣的。