serialize()
フォームの外にあるその他のデータを投稿できるかどうかを確認しようとしています。
これが私がうまくいくと思ったものですが、送信するだけで'wordlist'
フォームデータは送信しません。
$.post("page.php",( $('#myForm').serialize(), { 'wordlist': wordlist }));
誰かアイデアはありますか?
serialize()
フォームの外にあるその他のデータを投稿できるかどうかを確認しようとしています。
これが私がうまくいくと思ったものですが、送信するだけで'wordlist'
フォームデータは送信しません。
$.post("page.php",( $('#myForm').serialize(), { 'wordlist': wordlist }));
誰かアイデアはありますか?
回答:
serializeArray
[docs]を使用して、追加のデータを追加できます。
var data = $('#myForm').serializeArray();
data.push({name: 'wordlist', value: wordlist});
$.post("page.php", data);
serializeArray
あなたが思っているような構造は作りません。デモで何を表示しようとしているのかわかりません。配列の長さを警告しているだけです。私のデモで納得できない場合は、ドキュメントをご覧ください。
試してみてください$ .PARAMを
$.post("page.php",( $('#myForm').serialize()+'&'+$.param({ 'wordlist': wordlist })));
JavaScriptオブジェクトをフォームデータに追加する場合は、次のコードを使用できます。
var data = {name1: 'value1', name2: 'value2'};
var postData = $('#my-form').serializeArray();
for (var key in data) {
if (data.hasOwnProperty(key)) {
postData.push({name:key, value:data[key]});
}
}
$.post(url, postData, function(){});
または、メソッドserializeObject()を追加すると、次のことができます
var data = {name1: 'value1', name2: 'value2'};
var postData = $('#my-form').serializeObject();
$.extend(postData, data);
$.post(url, postData, function(){});
[{name: 'wordlist'}, {value: wordlist}]
。これはjQueryが理解できる形式ではないので、これが実際に機能するとは思えません。
jqueryの新しいバージョンでは、次の手順で実行できます。
serializeArray()
push()
配列に追加のパラメーターを追加するための呼び出しまたは同様のメソッド、$.param(arr)
jquery ajaxのdata
パラメーターとして使用できるシリアル化された文字列を取得するための呼び出し。コード例:
var paramArr = $("#loginForm").serializeArray();
paramArr.push( {name:'size', value:7} );
$.post("rest/account/login", $.param(paramArr), function(result) {
// ...
}
AJAX要求を対応する値に送信する直前に設定する非表示フィールドとして追加のデータをフォームに含めることができます。
別の可能性は、この小さな宝石を使用してフォームを(文字列ではなく)JavaScriptオブジェクトにシリアル化し、不足しているデータを追加することです。
var data = $('#myForm').serializeObject();
// now add some additional stuff
data['wordlist'] = wordlist;
$.post('/page.php', data);
serializeObject
。どこでそれを手に入れたのですか?
私はオブジェクトをオブジェクトとして保持し、クレイジーな型シフトを行わないようにしています。これが私のやり方です
var post_vars = $('#my-form').serializeArray();
$.ajax({
url: '//site.com/script.php',
method: 'POST',
data: post_vars,
complete: function() {
$.ajax({
url: '//site.com/script2.php',
method: 'POST',
data: post_vars.concat({
name: 'EXTRA_VAR',
value: 'WOW THIS WORKS!'
})
});
}
});
上から見えない場合は、.concat関数を使用して、post変数を「name」、値を「value」としてオブジェクトに渡しました!
お役に立てれば。