jquery를 사용하여 Ajax/Php 요청을 작성하는 두 개의 매우 유사한 양식을 만들었습니다. 유일한 차이점은 첫 번째 양식이 배열을 보내고 응답으로 다차원 배열을 얻는 것입니다. 두 번째 양식은 다차원 배열을 보내고 다른 다차원 배열을 가져옵니다. 여기jQuery 양식을 제출하십시오 다차원 배열 - Ajax/Php
<?php
class ajax {
function calc() {
$ajaxArray = json_decode(stripslashes($_POST['ajaxArray']));
$data1 = $ajaxArray['0'];
$data2 = $ajaxArray['1'];
$data3 = $ajaxArray['2'];
//Array da ritornare al form
$returnAjax = array();
/*
...make some operation and push data in returnAjax...
*/
return json_encode($returnAjax);
}
}
$ajax = new ajax;
echo $ajax->calc();
?>
2 양식의 jQuery를 요청 :
$('#mySecondformid').submit(function(event) {
event.preventDefault();
//Create the multidimensional array to send by getting value from the rows of the table
var ajaxArray = $("#preview tbody tr").map(function(){
var tds = $(this).find("td");
return {
data1: tds.eq(0).html(),
data2: tds.eq(1).html(),
data3: tds.eq(2).html()
};
}).get();
var ajaxData = { ajaxArray: JSON.stringify(ajaxArray) };
$.ajax({
type: 'POST',
url: '../form-response-second-form.php',
data: ajaxData,
dataType: 'json',
success: function (data) {
console.log(data);
$.each(data, function(index, element){
//...do something...
});
}
});
});
1 양식의 PHP 파일의 첫 번째 양식
$('#myFirstformid').submit(function(event) {
event.preventDefault();
var ajaxArray = new Array();
ajaxArray.push(data1);
ajaxArray.push(data2);
ajaxArray.push(data3);
var ajaxData = { ajaxArray: JSON.stringify(ajaxArray) };
$.ajax({
type: 'POST',
url: '../form-response-first-form.php',
data: ajaxData,
dataType: 'json',
success: function (data) {
console.log(data);
$.each(data, function(index, element){
//...do something...
});
}
});
});
의 jQuery를 요청의
그리고 여기에 2 번째 PHP 파일 :
<?php
class ajax {
function calc() {
$ajaxArray = json_decode(stripslashes($_POST['ajaxArray']));
//Array da ritornare al form
$returnAjax = array();
foreach ($ajaxArray as $value){
//...make some operation foreach subarray and push data in returnAjax...
}
return json_encode($returnAjax);
}
}
$ajax = new ajax;
echo $ajax->calc();
?>
첫 번째 양식이 올바로 작동하는 이유는 이해할 수 없지만 두 번째 양식은 올바르지 않습니다.
콘솔 로그에 아무 것도 없기 때문에 서버에서 응답이없는 것 같습니다. 사전
* 편집
@SAM 내가 시험을 가지고있는 덕분에 지금은 서버에 대한 요청이 올바른지 확인 해요, 난 빈 응답을 얻을.
다른 테스트를 통해 수동으로 PHP 파일 내부에 다차원 배열을 추가 했으므로 PHP의 논리가 옳습니다. 즉 그래서 내가 잘못 될 수 있다고 생각 유일한 것은이 jQuery 코드가 올바른 다차원 배열을 만들 수 없다는 것입니다 배열
<?php $ajaxArray = array(
0 => array(from => "01/01/2010",
to => "01/01/2011",
type => "Credit",
amount => 10000.00
),
1 => array(from => "01/01/2011",
to => "01/01/2012",
type => "Debit",
amount => 200.00),
2 => array(from => "01/01/2012",
to => "01/01/2013",
type => "Debit",
amount => 100.00),
3 => array(from => "01/01/2013",
to => "23/04/2014",
type => "Debit",
amount => 100.00)
);
?>
입니다. 다차원 배열은 테이블에서 값을 얻어서 만든, 당신은 오타가 그래서 AJAX
호출이 아닌 같은
$.ajax({
type: 'POST',
url: '../form-response-second-form.php',
data: ajaxData,
dataType: 'json',
success: function (data) { }
것 같습니다 ...이 바이올린 그냥 추측 여기 http://jsfiddle.net/6q8cS/6/
안녕하세요, 먼저 두 번째 양식의 'ajaxData'에 값이 있는지 확인하십시오. 올바른 JSON 개체인지 확인하십시오. 둘째로, 당신이 말했듯이, 당신은 server.log()에서 빈 응답을 얻고 있습니다. 즉, 서버에 대한 요청이 정확하고 HTTP 상태 200을 얻고 있다는 것을 의미합니다. 그러면 PHP의 논리에 어떤 것이 틀림 없습니다. –
안녕하세요, 아약스 배열 (multidimensionale 배열) 값을 알고 있으므로 이러한 코드를 경우 : "var ajaxData = {ajaxArray : JSON.stringify (ajaxArray)};" 올바른지, 그것은 ajaxData JSON에서 올바른 형식으로 값을 가지고 meen .. 마지막으로 나는 전혀 응답을 얻을 것이라고 말했다. – fasenderos