我通过ajax(jquery)将数据发送到php,然后处理它。我想从php脚本中返回一个值,但我不确定如何。
如何返回结果?
$(document).ready(function() { //This script sends var Score to php
Score=100; //Dummy variable
$.ajax({
type: "POST",
url: "returnresults.php",
data: { 'Score':Score },
success: function(){
$('#box2').html(Score);
}
})
});
非常简单的PHP代码
<?php
$Score=$_POST['Score'];
if (isset($_POST['Score'])) {
$Score=80;
}
?>
答案 0 :(得分:3)
您的PHP页面应该输出您想要返回的html或文本,所以最简单的可能是将它添加到PHP的末尾:
echo $Score;
如果你想在PHP中预先格式化它,那么:
echo "<div>" . $Score . "</div>";
在哪里可以使html标记尽可能简单或复杂(显然,<div>
只是一个例子)。
然后你的jQuery ajax调用会自动将响应作为参数传递给你的成功处理程序,所以:
$.ajax({
type: "POST",
url: "returnresults.php",
data: { 'Score':Score },
success: function(data){ // <-- note the parameter here, not in your code
$('#box2').html(data);
}
});
(data
将是回复。)
注意:如果您知道对ajax调用的响应唯一要做的就是获取data / text / html并将其放入特定元素中,您只需使用{{3而不是$.ajax()
:
$('#box2').load("returnresults.php", { 'Score':Score });
答案 1 :(得分:2)
检查documentation。特别是关于success
处理函数:
成功(data,textStatus,jqXHR)
一个功能 如果请求成功则调用。该函数传递了三个 arguments:从服务器返回的数据,格式为 dataType参数;描述状态的字符串;和jqXHR (在jQuery 1.4.x,XMLHttpRequest中)对象。
所以jQuery会将三个参数传递给你的success
函数。第一个包含您想要的数据。如果您只想将服务器返回的内容准确传递到success
处理程序,您可以执行以下操作:
$(document).ready(function() { //This script sends var Score to php
$.ajax({
type: "POST",
url: "returnresults.php",
data: { 'Score':Score },
dataType: "text", //set the dataType to 'text' so that jQuery passes it verbatim
success: function(newScore){ //the first parameter will contain the response the server sent, we ignore the other two parameters in this example
$('#box2').html(newScore);
}
})
});
然后在您的PHP代码中,直接将所需的值写入响应。
答案 2 :(得分:2)
$(document).ready(function() { //This script sends var Score to php
Score=100; //Dummy variable
$.ajax({
type: "POST",
url: "returnresults.php",
data: { 'Score':Score },
success: function(response){
alert(response);
$('#box2').html(Score);
}
})
});