在页面加载时提交ajax

时间:2016-12-13 19:04:58

标签: javascript php jquery 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();
}

但是user-style.php没有得到任何数据,也没有来自数据库的东西。

2 个答案:

答案 0 :(得分: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的网址参数将其传递给当前脚本:

<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'));
});

答案 1 :(得分:0)

您在ajax调用中发布数据,但绑定到变量$_GET['store']。只需将其更改为$_POST['store']即可。这本应发出一个notice error,说明有一个undefined index 'store' in $_GET on line ...。这就是为什么在开发过程中启用error_reporting(E_ALL)是好的。

编辑:实际上,第二个想法,它可能没有抛出错误,因为当通过引用使用变量时,如果它不存在并且不会抛出错误,则会创建一个变量。我假设未定义的数组索引也是如此。