다음 코드가 있지만 ajax를 사용하여 전달 된 객체의 내용에 액세스 할 수 없습니다. 내가 뭘 놓치고 있니?PHP로 AJAX를 사용하는 POST OBJECT
$(".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] 표시 [개체 개체] 개체 개체]. 도움 주셔서 감사합니다. ') (submit.click'
1, 양식 입력을 클릭하여 제출하실 수 있습니다, 그래서 오히려보다 .submit()
방법을 사용합니다 :
,하지만 당신은'$의 mydata을로 사용하려고
귀하의 경우에는가와 AJAX 호출에 my_obj의 부품을 교체 '변수의 이름이 아닙니다. PHP 변수는'$'앞에 붙는 반면, JavaScript에서는 변수 이름의 일부분으로 다른 문자이므로 정의되지 않은 변수를 사용합니다. 이것을 디버깅 할 때 서버로 보내지는 실제 POST는 무엇입니까? Firebug와 같은 브라우저 디버깅 도구에서이를 캡처하여 통과되는 것을 확인할 수 있습니다. – David
또한 $ mydata 및 mydata는 잠재적 인 (의도적 인) 글로벌 누출 일 수 있습니다. 일단 다른 문제를 분류하면,'fruits + car'가 당신이하는 것을하지 않는다는 것을 알게 될 것입니다. jQuery를 사용하고 있기 때문에, 그 시점에서 jQuery.extend (http://api.jquery.com/jQuery.extend/)를 읽는 것이 좋습니다. –