我有以下代碼,但我無法訪問使用ajax傳遞的對象的內容。我錯過了什麼?POST對象使用AJAX到PHP
$(".submit").click(function(){
var fruits = {"fruits" : ["apples","banana","oranges"]};
var cars = {"cars" : ["BMW", "Honda", "Toyota"]};
var my_Obj = fruits + cars;
mydata = JSON.stringify(my_Obj);
$("#mydata").val(mydata);
$.ajax({
url: "add.php",
type: "POST",
data: {
name: $('#name').val(),
Address: $('#Address').val(),
my_obj : $mydata
},
datatype: "json",
success: function (status) {
if (status.success == false) {
alert("Failure!");
} else {
alert("Success!");
}
}
});
});
<form id="json" method="post" action="add.php">
<input type="text" name="name" id="name" value="">
<input type="text" name="address" id="Address" value="">
<input type="text" name="mydata" id="mydata" hidden>
<input type="submit" name="submit" id="submit" class="submit" value="send">
</form>
add.php
$new_post['id'] = $_POST['id'];
$new_post['name'] = $_POST['name'];
$new_post['address'] = $_POST['address'];
$new_post['my_obj'] = $_POST['mydata'];
print_r ($new_post);
[my_obj]顯示[對象的對象] [對象的對象。 感謝您的幫助。
你有一個叫做'mydata'變量,但你嘗試使用它作爲'$ MYDATA ',這不是變量的名稱。 PHP變量預先設置了一個'$',但是在JavaScript中,這只是另一個字符作爲變量名稱的一部分,因此您使用的是未定義的變量。當你調試這個時,實際的POST被髮送到服務器是什麼?您可以在瀏覽器調試工具(如Firebug)中捕獲它,以查看傳遞的內容。 – David 2013-03-17 00:24:55
此外,$ mydata和mydata是潛在的(可能是故意的)全局泄漏。一旦你解決了其他問題,你可能會發現'水果+汽車'並沒有達到你的意思。由於您使用的是jQuery,因此您可能需要閱讀jQuery.extend(http://api.jquery.com/jQuery.extend/)。 – 2013-03-17 00:33:30