2014-04-22 2 views
0

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/

+0

안녕하세요, 먼저 두 번째 양식의 'ajaxData'에 값이 있는지 확인하십시오. 올바른 JSON 개체인지 확인하십시오. 둘째로, 당신이 말했듯이, 당신은 server.log()에서 빈 응답을 얻고 있습니다. 즉, 서버에 대한 요청이 정확하고 HTTP 상태 200을 얻고 있다는 것을 의미합니다. 그러면 PHP의 논리에 어떤 것이 틀림 없습니다. –

+0

안녕하세요, 아약스 배열 (multidimensionale 배열) 값을 알고 있으므로 이러한 코드를 경우 : "var ajaxData = {ajaxArray : JSON.stringify (ajaxArray)};" 올바른지, 그것은 ajaxData JSON에서 올바른 형식으로 값을 가지고 meen .. 마지막으로 나는 전혀 응답을 얻을 것이라고 말했다. – fasenderos

답변

0

보고 맞은 URL를 명중. 이것은 개발자 도구에서 스크립트의 응답을 볼 때 일관성이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는이 글을 잘못 쓰고 있었지만 "실제"형태로 URL은 정확하다. – fasenderos

관련 문제