我想從PHP發送關聯數組到Javascript。但是,出於某種原因,輸出是未定義的。下面的代碼:從PHP到JavaScript使用JSON的關聯數組
PHP(虛擬的陣列):
$validationErrors = array("unregisteredName" => NULL,
"unregisteredEmail" => "Invalid e-mail", "unregisteredUsername" => NULL,
"unregisteredPassword" => NULL);
$log = array("errors" => $validationErrors);
echo json_encode($log);
的Javascript:
var addUserCallback = function(data) {
if(data.errors && data.errors.length) {
$.each(data.errors, function(index, error) {
console.log(error);
$("#"+index).attr("placeholder", error);
});
}
else {
window.location="https://stackoverflow.com/users/success/";
}
};
var errorCallback = function(xhr, status, error) {
console.log(arguments);
};
self.addUser = function() {
var data = {
unregisteredName: $("#unregisteredName").val(),
unregisteredEmail: $("#unregisteredEmail").val(),
unregisteredUsername: $("#unregisteredUsername").val(),
unregisteredPassword: $("#unregisteredPassword").val()
};
$.post(addUserUrl, data).success(addUserCallback)
.error(errorCallback);
}
這裏是我從Chrome的督察獲得:
數據:"↵{"errors":{"unregisteredName":null,"unregisteredEmail":"Invalid e-mail.","unregisteredUsername":null,"unregisteredPassword":null}}"
個 data.errors:Undefined
那麼,什麼情況是,即使獲得的「數據」可變數據,因爲事實上它是格式化它總是重定向到「成功」頁面。
任何想法?
因爲'data'是一個字符串。您需要解析JSON字符串並首先提取您的對象。 – Crontab 2012-01-06 20:13:37