【问题标题】:Sending 'GET' data with $.load()使用 $.load() 发送“GET”数据
【发布时间】:2012-01-18 04:54:26
【问题描述】:

这是我的功能:

function loadNext(choice) {
    $("#thequestion").load("question.php", { ans: choice, id: "<?php echo $row['id']; ?>", nextId: "<?php echo $nextQuestionId; ?>" } );

    $("#graph").load("graph.php", { id:"<?php echo $row['id']; ?>", nextId: "<?php echo $nextQuestionId; ?>" } );
}

我执行了这个函数,Firebug 说正在发布数据,例如:

 Parameters:
    ans y
    id  3
    nextId  1
 Source:
    ans=y&id=3&nextId=1

但是当我尝试像这样在“question.php”或“graph.php”中检索它们时:

$id=$_GET["id"];
$nextId=$_GET["nextId"];

它们回显为 null。

有什么想法吗?

编辑:我刚刚注意到执行函数时网站 URL 没有改变。不应该将ans=y&amp;id=3&amp;nextId=1 附加到它上面以发送数据吗?或者 jQuery/ajax 的东西不是这样吗?

编辑 2:对不起,这可能变得非常具体,但如果我附加 /question.php?ans=y&amp;id=3&amp;nextId=1 手动,一切正常!所以现在我真的很困惑 - 这已经将问题缩小到函数 loadNext(choice),不是吗?

编辑 - (非操作)建议编辑以包含 javascript 和 jquery 标记。

【问题讨论】:

  • 网站网址不会改变。 AJAX 请求发生在后台

标签: php javascript jquery get


【解决方案1】:

来自jQuery load() API

如果数据作为对象提供,则使用 POST 方法;否则,假定为 GET。

要么更改您的 PHP 脚本以查看 $_POST(或 $_REQUEST,如果您觉得懒惰)或将 JavaScript 更改为

$.get("question.php", {
    ans: choice,
    id: "<?php echo $row['id'] ?>",
    nextId: "<?php echo $nextQuestionId ?>"
}, function(data) {
    $("#thequestion").html(data);
});

【讨论】:

  • 菲尔,你是我的英雄。非常感谢。我一直在努力得到这个你不会相信的。
【解决方案2】:

也试试这个,

function loadNext(choice) {
        $("#thequestion").load("question.php?ans=choice&id=<?php echo $row['id']; ?>&nextId=<?php echo $nextQuestionId; ?>" } );

        $("#graph").load("graph.php?id=<?php echo $row['id']; ?>&nextId=<?php echo $nextQuestionId; ?>" } );
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多