我有一些问题能够在PHP中看到数组变量回显,我尝试过很多东西,我知道数组是通过JSON和stringify版本发送到PHP文件的。
我可以将数据写入日志文件,并在变量文件中显示数据:$ datastripped如下
{"supplements":[{"supplement":"1","dose":"2","dosewieght":"mg"}]}
无论我如何编码,$ data变量都不会写入日志文件。
我尝试了$ data,$ data [0],$ data [0] ['supplement'],$ data ['补充'] ['补充']以及许多其他组合。
我在JSON上找到的信息以及对其他人有用的信息似乎对我不起作用。
***我也在WordPress中这样做,但已经验证数据正确到达php函数,但无法回显单个项目
这是Javascript:
var supplist = {supplements:[]};
supplist.supplements.push({supplement:supplement, dose:dose, dosewieght:doseweight});
$( "#supplementsave" ).click(function(){
var jsonsupparray = JSON.stringify(supplist);
event.preventDefault();
jQuery.ajax({
type: "POST",
dataType:"JSON",
url: myajax.ajax_url,
data:{
data:jsonsupparray,
action: "addsupplements"
},
cache:false,
success: function(data){
console.log("success");
},
});
这是PHP:
$datastripped =stripslashes($_POST['data']);
$data = json_decode($datastripped, true); //Data Not Beign shown
foreach($data as $value){
echo $value['supplement'];
}
答案 0 :(得分:3)
当您在支持列表中推送数据时,还需要输入单引号。
supplist.supplements.push({'supplement':'supplement', 'dose':'dose', 'dosewieght':'doseweight'});
否则会抛出javascript错误,补丁未定义,因为它将补充视为变量,而不是字符串。
现在在你的php代码中你需要解码你的json并迭代。
答案 1 :(得分:1)
就是这样
<?php
$datastripped = '{"supplements":[{"supplement":"1","dose":"2","dosewieght":"mg"}]}';
$data = json_decode($datastripped, true);
// print_r($data['supplements']);
foreach ($data['supplements'][0] as $key => $value) {
echo $key.' '.$value.'<br>';
}
?>
你会得到
supplement 1
dose 2
dosewieght mg
如果你想调用一个参数
echo $data['supplements'][0]['supplement'];
echo $data['supplements'][0]['dose'];
echo $data['supplements'][0]['dosewieght'];