我想从JS发送数组到PHP。Javascript JSON.stringify/PHP json_decode不工作
JS:
var json = JSON.stringify(extraFields);
url += "&json="+json;
PHP:
$json = json_decode($_GET['json'], true);
foreach($json as $K=>$V){
echo "json".$K . "=" . $V ."; ";
}
假设extraFields
是这个格式的有效阵列:
extraFields['key1'] = 'val1';
extraFields['key2'] = 'val2';
extraFields['key3'] = 'val3';
我得到的PHP错误是invalid argument for Foreach
当我循环访问$_GET
值并回显它们时,PHP显示为$_GET['json']
的空括号,因此它将它识别为json ..
我在做什么错了?
答到TJ的评论
var extraFields = new Array();
var countFields = THIS.$_FIELDS.length;
var Row = new Array();
while(countFields--){
var name = THIS.$_FIELDS[countFields]['name'];
var id = THIS.$_FIELDS[countFields]['id'];
var elemVal = getElmVal(id);
extraFields[name] = elemVal;
window.alert(name +"="+ elemVal);
}
从JS发送到PHP时检查标头,并且在使用'json_decode'时,检查json_decode是否返回null。如果是这样,'echo json_last_error_msg();'看看有什么不对。 –
你是如何创建*'extraFields'的? '= {}'? '= []'? –
@ T.J.Crowder看到我的编辑 –