从Ajax发布获得丰富的结果

时间:2016-10-17 14:39:54

标签: javascript php jquery ajax

也许这是重复但我无法理解为什么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;
});

2 个答案:

答案 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');