发送';获取';带有$.load()的数据


Sending 'GET' data with $.load()

这是我的函数:

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"或"graphic.php"中检索它们时,就像这样:

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

它们回显为空。

有什么想法吗?

编辑:我刚刚注意到,当函数执行时,webiste URL不会改变。ans=y&id=3&nextId=1不应该被附加到它上面以便发送数据吗?或者jQuery/ajax的东西不是这样的吗?

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

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

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

也试试这个,

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; ?>" } );
    }