也许这是重复但我无法理解为什么mo代码不起作用。我试图通过Ajax / php获得多个结果。
这是来自我的php文件:
webexample.com/api/users?id=1
Ajax电话:
$result11 = 'test1'
$result22 = 'test2';
echo json_encode(array("data1" => $result11, "data2" => $result22));
问题:
当我提交表单时,页面会刷新而不是发送ajax请求。
同时这有效,但我无法从Php文件获得多个结果:
$(document.body).on('submit','#sendmessage',function() {
$.ajax({
type: "POST",
url: "/send.php",
data: {par:par,kid:kid,ha:ha,sform:sform,editors:editors},
cache: false,
dataType:'json',
success: function(datax) {
alert(datax.data1);
}
});
return false;
});
答案 0 :(得分:0)
向脚本添加preventDefault()调用
$(document.body).on('submit','#sendmessagex',function(event) {
//----------------------------------------------------^^^^^
event.preventDefault();
var str = $(this).serialize();
$.ajax({
type: "POST",
url: "/send.php",
data:str,
success: function(data) {
alert(data);
}
});
return false;
});
答案 1 :(得分:0)
您必须使用preventDefault()ofcourse来阻止页面刷新。然后你可以使用没有数据类型json的第二个代码。但在这种情况下,首先你必须像这样解析json:
success: function(data){
var datax = JSON.parse(data);
//now you have object and can access like this: datax.data1, datax.data2
}
如果您想使用第一个代码,在php中您必须设置php标头以将其定义为正确的json输出。
header('Content-Type: application/json');