11

私の全体的な目標は、ページ上のすべてのドロップダウンをすべて取得し、それを送信して php ファイルで処理することです。

現在、jQuery で行っている方法は、全体的なスケジュール配列を作成し、更新する各要素をその配列に追加することです。だから私は次のようなものを持っています:

var schedule = [];
var data = { 
   'user_id' : '12', 
   'day_of_week' : 'Monday',
    'when' : 'start',
    'time' : '12 AM'
 }
schedule.push(data);
var data = { 
   'user_id' : '13', 
   'day_of_week' : 'Tuesday',
    'when' : 'end',
    'time' : '12 AM'
 }
schedule.push(data);
// schedule would have two objects in it

明らかにループなどで。

この場合、私のスケジュール配列には 2 つのオブジェクトがあります。

では、そのスケジュール配列をajaxデータとして利用することは可能でしょうか? 次のようなことをするとうまくいきません。

$.ajax({
  url: 'http://something.com/ajax',
  data: schedule,
  type: 'POST'
});

しかし、代わりに変更すると、schedule[0]問題なく動作しますが、明らかに、スケジュール配列の最初のものに対してのみです。

4

3 に答える 3

11

data属性はオブジェクトである必要があります。

あなたができることはこれです:

$.ajax({
  url: 'http://something.com/ajax',
  data: {schedule: schedule},
  type: 'POST'
});

したがって、たとえば PHP でこれを受け取った場合は、$_POST["schedule"]. これは、JavaScript で使用したものとまったく同じです。

そうそう忘れてた… と も見て.serialize().serializeArray()

于 2012-04-21T19:27:50.733 に答える
3

正しいバージョンの jQuery を使用していることを確認してください。以前のバージョンでは、文字列を渡す必要がありました。新しいバージョンでは、変数に対して「インテリジェントな推測」が使用されdataます。dataTypeパラメータを使用してjavascriptオブジェクトを渡すことをjQueryに明示的に伝えるか、jQueryにそれを理解させることができます。

ドキュメンテーション

jQuery.ajax()- http://api.jquery.com/jQuery.ajax/

于 2012-04-21T19:59:07.450 に答える
2

JSON として渡します。

$.ajax({
  url: 'http://something.com/ajax',
  data: {schedule: schedule},
  type: 'POST',
  dataType: 'JSON'
});

JSON でエンコードされた文字列をサーバーに送信し、サーバー側の言語で解析できます。(PHP では で行われjson_decode()ます)。

于 2012-04-21T17:04:50.290 に答える