我想從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看到我的編輯 –