0

私は通常、次のように .post() を介してデータを渡します。

 $.post(
    "/ajax.php",
    $("#form").serialize(),
    function(responseJSON) {
        console.log(responseJSON);
    },
    "html"
);

私のフォーム内"#form"には、通常、クエリを実行するアイテムの ID の値を保持する「id」という名前の非表示の入力があります。

私がやりたいのは、その隠された入力を取り出して、送信ボタンに属性を追加し、jQuery 関数でそこからデータを抽出して、他のフィールドdata-id="$id"と一緒に送信することです。#form

簡単に言えば、私が求めているのは、すべてを 1 つの関数でバックエンド$('#form').serialize()に渡すにはどうすればよいかということです。$('#button').data('id')$.post()

4

3 に答える 3

1

これを試して

var data = $("#form").serialize() + '&data-id=' + $('#button').data('id');
$.post(
    "/ajax.php",
    data,
    function(responseJSON) {
        console.log(responseJSON);
    },
    "html"
);
于 2012-11-13T19:45:42.977 に答える
1

.serialize() は、データを含む文字列を作成するだけです。&<variable>=<value>最後に追加するだけです。

于 2012-11-13T19:48:24.137 に答える
0

自動的にそれを行うライブラリを試すことができます。 http://phery-php-ajax.net/を使用して、内部の仕組みについて心配する必要はありません。

Phery::instance()->set(array(
   'function' => function($data){ 
       // $data['id'] = the hidden in your form
       return PheryResponse::factory()->json($your_array_that_will_be_turned_to_json);
   }
))->process();
<form data-remote="function" method="POST">
  <input type="hidden" name="id">
</form>

あなたのJavascriptでは、JSONを扱うことができます

$(function(){
  $('form').bind('phery:json', function(event, json_data){
    // deal with your json_data
  }
});
于 2012-11-13T19:49:31.477 に答える