2017-10-21 7 views
0

私はajax投稿を書くのに役立つjavascript関数を書いています。この関数内ではパラメータの配列を受け取ります。機能は以下の通りです。パラメータの配列を持つAjaxポスト、PHP内で参照される

/** 
* quick function to call an ajax function with post, and get data back via json 
* @param {string} url - url of ajax call or php file 
* @param {array} data - array of data to pass in a key value pair 
* @callback {function} success_callback - on success 
* @callback {function} error_callback - on error 
* @callback {function} complete_callback - on complete 
* @return boolean 
*/  
    function ajax_json_post(url, data, success_callback, error_callback, complete_callback) { 
     $.ajax ({ 
      type:"POST", 
      url: url, 
      data: { data: data}, 
      dataType: "json", 
      success:function(response) {        
       if(typeof success_callback === "function") { 
        success_callback(response); 

       } 

       return true; 

      }, 
      error:function(jqXHR, textStatus, errorThrown) { 
       if(typeof error_callback === "function") { 
        error_callback(jqXHR, textStatus, errorThrown); 

       } 

       return false; 

      }, 
      complete:function() { 
       if(typeof complete_callback === "function") { 
        complete_callback(); 

       } 

       return true; 

      } 

     }); 

    } 

私は、この関数を参照するために使用しているコードは以下であり、それは動作しますが、PHPスクリプトに投稿するときただし、配列は、$ _POST [「データ」] [「をvalue1」]を経由してアクセス可能です。

私の質問は、$ _POST [「をvalue1」]

  var data = { 
       value1: 1, 
       value2: true 

      } 


      ajax_json_post("ajax/webservice_quote_domestic.php", data, function(response) { //success 
       if(typeof callback === "function") { 
        callback(response); 

       } 

      }, function() { //error 


      }, function() { //complete 


      });  
だろう、私はAjaxのポストに、これらのパラメータを渡すことができるか、ですが、PHPの中に配列名を宣言することなく、それらにアクセスすることができ、予想

答えて

1

シンプル

私達はちょうどすべての笑これを無視することができます....ただ、このコードを変更し、まあdata: data,なくdata: { data: data},

function ajax_json_post(url, data, success_callback, error_callback, complete_callback) { 
    $.ajax ({ 
     type:"POST", 
     url: url, 
     data: data,    // change is here 
     dataType: "json", 
     success:function(response) {        
      if(typeof success_callback === "function") { 
       success_callback(response); 
      } 
      return true; 
     }, 
     error:function(jqXHR, textStatus, errorThrown) { 
      if(typeof error_callback === "function") { 
       error_callback(jqXHR, textStatus, errorThrown); 
      } 
      return false; 
     }, 
     complete:function() { 
      if(typeof complete_callback === "function") { 
       complete_callback(); 

      } 
      return true; 
     } 
    }); 
} 
+0

を渡します –

関連する問題