2017-06-13 14 views
1

私はフォーム全体をAJAXに渡す方法を知っています。AJAX - フォーム全体を1つ以上のフォームに渡します。

data: $(this).serialize() 

ただし、フォームの外側にフォームの値を渡す方法はわかりません。

例:

var id = $('[name="formid"]').attr("id"); 
var uniq = $('[name="formid"]').data('uniquecode'); 

data: {form: $(this).serialize(), id: id, uniq: uniq}, 

これは動作しますが、フォームではなく、配列のクエリ文字列に変わります。

Array ([form] => fullname=&contactnum=&email=&source=) 

それはこのようにする必要があります:

Array ([fullname] => [contactnum] => [email] => [source] =>) 

誰かが私がこれをdoinのを助けますか?ありがとう。あなたが見ることができるように

+0

'FormData'オブジェクトが目的のこの種のために設計されて使用してPHPのバックエンドでの配列を取得することができます。フォームに添付する必要があるドキュメントがある場合に便利です。しかし、私はそれを複数のデータを渡す際に使用しようとはしませんでした。 – RamRaider

+0

を経由して送信する前に、あなたが望む任意の項目を追加することができます -

あなたはparse_str

Kaitenz

答えて

1

ソリューションを入手するにはさまざまな方法があります。 Serializeをあなたが

data: $(this).serialize() + "&id=" + id + "&uniq=" + uniq, 

として連結することができますので、あなたがあればあなたも

<input type="hidden" name="id" value="your value" /> 
<input type="hidden" name="uniq" value="your other value" /> 

として隠しフィールドを使用することができます

var id = $('[name="formid"]').attr("id"); 
var uniq = $('[name="formid"]').data('uniquecode'); 
    $.ajax({ 
     url:'', 
     data : { 
     data : data, 
     id : id, 
     uniq : uniq, 
     }, 
    }); 

としてindependetlyアヤックスでのデータのあなたの値を渡すことができます文字列を返しますあなたは通り過ぎています

data: {form: $(this).serialize(), id: id, uniq: uniq}, 
直接フォームを割り当て、実際のAjax
+0

私は 'parse_str'関数が好きです。それは私に役立った。私のコードに少なくとも2行追加しますが、誰が気にしますか?ははは。ありがとう。私を助けてくれました。 – Kaitenz

+0

聞いてうれしいよ:) – Rahul

3

- あなたが必要な値とそれを連結することができる理由serialize()リターンを単純な文字列、それはです:

data: $(this).serialize() + "&id=" + id + "&uniq=" + uniq, 

別の解決策は、あなたの必要な値をフォーム上の隠し入力を作成することができます:

<input type="hidden" name="id" value="your value" /> 
<input type="hidden" name="uniq" value="your other value" /> 

次に、何もせずにserialize dになります。

+0

この情報も参考になります。私は両方の答を合格とマークすることができます。ははは。とにかく、私はこの答えを受け入れる。 – Kaitenz

関連する問題