如何浏览PHP程序从Ajax发送的Json数据?
我通过Ajax将Json数组对象传递给PHP文件,但我不知道如何在PHP中接收并循环数据 以下是我如何将对象命名为主数据:如何浏览PHP程序从Ajax发送的Json数据?,php,json,ajax,data-structures,Php,Json,Ajax,Data Structures,我通过Ajax将Json数组对象传递给PHP文件,但我不知道如何在PHP中接收并循环数据 以下是我如何将对象命名为主数据: stringified as json object var main_data = ["landing_page_id","1", "element",{"workbook_id":15,"workbook":[10,11]}, "element",{"workbook_id":15,"workbook"
stringified as json object
var main_data = ["landing_page_id","1",
"element",{"workbook_id":15,"workbook":[10,11]},
"element",{"workbook_id":15,"workbook":[10,11]}]
以下是我的Ajax代码:
$.post('services/addUpdateLandingPage.php', main_data, function(msg)
{
alert(msg);
}, 'json');
下面是我的PHP代码:
$data = $_POST['main_data'];
echo 'this is data'.$data;
但是,我不知道如何访问PHP文件中的数据以及如何循环每个项目?我认为您的JSON应该如下所示: {“登录页面id”:“1”,“元素”:[{“工作簿id”:15,“工作簿”:[10,11]},{“工作簿id”:15,“工作簿”: [10,11]}]} 在PHP代码中,您可以获得如下元素数据:
$jsonArray = json_decode($_POST['main_data'],true);
foreach($jsonArray['elements'] as $element){
echo $element['workbook_id'];
echo $element['workbook'][0];
echo $element['workbook'][1];
}
$jsonArray = json_decode($_POST['main_data'],true);
$isElement = false;
foreach($jsonArray['elements'] as $element){
if($element == "element"){
$isElement = true;
}else if($isElement && is_array($element)){
echo $element['workbook_id'];
echo $element['workbook'][0];
echo $element['workbook'][1];
$isElement = false;
}
}
如果您不想更改json数据,您可以获得如下元素:
$jsonArray = json_decode($_POST['main_data'],true);
foreach($jsonArray['elements'] as $element){
echo $element['workbook_id'];
echo $element['workbook'][0];
echo $element['workbook'][1];
}
$jsonArray = json_decode($_POST['main_data'],true);
$isElement = false;
foreach($jsonArray['elements'] as $element){
if($element == "element"){
$isElement = true;
}else if($isElement && is_array($element)){
echo $element['workbook_id'];
echo $element['workbook'][0];
echo $element['workbook'][1];
$isElement = false;
}
}
由于您通过Ajax传递json数据,因此需要在PHP中对其进行解码以获得传递的数据
$array = json_decode($main_data,true); // will output json string to array
循环上述数组以获取单个数据
foreach($array as $key=>$value){
echo $value;
// if $value is array loop again
}
您的json数据似乎结构不正确。考虑Tarun在他的回答中提到的结构。如何处理$XPOST数据:(是的,您做Ajax,但是处理$xPOST的方法是相同的),以及如何循环通过数组:如何在PHP中处理JSON:解决方案似乎不起作用我尝试过PHP返回,但没有输出您是否更改了JSON?我在PHP中收到了这个对象如何在PHP中循环