2016-04-15 54 views
1

私たちのスタッフが棚に置いておくべきアイテムのリストを表示して、そのアイテムがそこにあるかどうかを確認したり、アラートで送信できるページを設定しています問題があればjquery ajaxがgetリクエストでデータを送信しない理由

私は実際のAjaxリクエストを行うジェネリック関数に各関数がその状況の正しいパラメータを渡す各状況(存在する項目、存在しない項目、情報が間違っている)ごとに1つの関数を作成しようとしています。

この関数は、ボタンのクリックによってトリガーされる(項目が存在し、正しい場合)、それは正しくデータをログに記録します。

[id: 1833049, status: 1, branch: "1", loc_code: "mnlp"] 

function log (rec_id,offset) { 
    console.log("On Shelf \r\nRecord_Id: "+rec_id+"\r\nOffset: "+offset); 
    var rdata =[]; 
    rdata['id'] = rec_id; 
    rdata['status'] = 1; 
    rdata['branch'] = $("#branch").val(); 
    rdata['loc_code'] = $("#location_code").val(); 
    console.log("log function"); 
    console.log(rdata); 

    log_item(rec_id,offset,rdata);  
} 

これがログに出力されものです

log_item機能はAJAXリクエスト

function log_item(rec_id, offset, rdata) { 
    console.log("Logging Item: i"+rec_id+"a"); 
    console.log("log_item function"); 
    console.log(rdata); 
    $.ajax({ 
     url: 'logItem.php', 
     data: rdata 
    }).done(function(response){ 
     console.log(response); 
     $("#form").foundation('close'); 
    }); 
} 

を作るそれはあまりにもデータcorrectlを記録しますy

[id: 1833049, status: 1, branch: "1", loc_code: "mnlp"] 

しかし、送信されたリクエストを表示すると、これらのパラメータはリクエストで渡されません。

+0

に変更し、それはメソッドを指定します。Ajaxリクエスト – misher

+0

で "POST" はGETが動作しませんが理由ですか? $ _GETからパラメータを取得するためにlogItem.phpを書きましたか? – cdm014

+1

Getメソッドでjsonデータを送信することはできません – misher

答えて

3

ここに問題があると思います。

var rdata =[]; 

var rdata ={}; 
+0

それはトリックでした。私が理解しているところでは、それは配列ではなくオブジェクトに変更されます。なぜ配列がうまくいかなかったのでしょうか? – cdm014

+0

javascriptは連想配列をサポートしていません。配列は0,1,2のようなインデックスのみを持つことができます(常に数値)。 キー値jsを格納するためにオブジェクトがあります。 – rajesh

+0

@ cdm014 jQuery 'ajax'関数は、jQuery' param'を使用して、データをGETリクエストのクエリ文字列に変換します:http://api.jquery.com/jquery.param/。ドキュメントからわかるように、配列は入力型としてサポートされていますが、空の配列( 'length == 0')を渡したので、何も生成されませんでした。 –

関連する問題