jquery - 通过POST(ajax)发送JSON数据并在php中检索

时间:2016-09-05 15:52:55

标签: javascript php jquery json ajax

目前我正在尝试使用ajax通过POST发送对象以在接收端进行处理。

var studentString = JSON.stringify(studentArray);

console.log(studentString);

// process the form
$.ajax({
        type: 'POST',
        url: 'process.php',
        data: {'students': studentString}, 
        dataType: 'json', 
            encode: true
        })

JSON.stringify之后的输出如下,所以到目前为止一切似乎都没问题。

[{"name":"bob","gender":"m","level":"4","topic":"subtraction"},
 {"name":"john","gender":"f","level":"3","topic":"addition"}]

在接收端(php端)我正在尝试使用json_decode检索数据,如下所示:

$result = json_decode($_POST['students'], true);

然而,在那之后我不知所措。如何循环生成的数组以一次一个地输出每个学生的详细信息?或者输出(例如),每个学生的名字?我尝试了

的变体
foreach ($result as $k => $value) { 
    $msg .= $k . " : " . $result[$k];    
}

......但我没有运气。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:2)

$resultarray个元素,请尝试以下方法:

foreach ($result as $data) { 
    echo $data['name']." : ".$data['gender']; //etc.   
}

答案 1 :(得分:0)

试试这个:

   $.ajax({
        type: 'POST',
        url: 'process.php',
        data: {'students': studentString}
    })

<强> process.php

foreach ($result as $k => $value) { 
    $msg = "name is:" . $value['name']; 
    $msg .=  ", gender is:" . $value['gender'];
    // add other 

    echo $msg."<br>";
}