2012-04-16 8 views
0

私は別のフォームのポップアップページを持つフォームを持っています。そのポップアップフォームでは、すべてのフィールドを記入し、それを隠しフィールドを介してメインの親フォームの1つのフィールドに格納したいと考えています。だから、親フォームが提出されると、私はすべてのフィールドをPHP経由で隠しフィールドから得ることができます。 jqueryでどうすればいいですか?私はポップアップフォームからすべてのフィールドを取得し、非表示フィールドにjson文字列として格納することはできますか?その後、PHPで私はすべてのフォームの値に簡単にアクセスできるようにオブジェクトにそのjqueryの文字列を有効にすることができますか?もしそうなら、どのようにポップアップフォームからすべてのフィールドを取り、それをjson文字列に変換しますか?または、より良い/より簡単な方法がありますか?投稿のための入力にフォームをキャプチャするためにJqueryを使用してフォームデータを隠しフィールドに格納しますか?

+0

の正常な部分しかしそれはあなたのように見えますghポップアップです。 – Dale

+0

@Dale申し訳ありませんが、私が実際にやっていることです。 jqueryのUIからのモーダルを使用して、私はフォームを隠しdivでラップし、ダイアログアクションを呼び出します。しかし、私はどのように私は簡単にフォームが提出された後、私は簡単にすべてのデータを取得することができます親フォーム上の隠し変数にフォームデータを格納するだろうか?それはjsonである必要はありませんが、それが最も簡単だと考えました。 – John

+0

メタルフロッグはあなたのためにこの+1で私の心を読んでいます – Dale

答えて

5

あなたは、フォームを.serialize()たい。

$('input').val($('form').serialize()); 

はその後、PHPで、あなただけのバックアップを配列に分割するparse_str()を行います。

また、このようなフィールドデータを渡すよりも優れた解決策があるかもしれませんが、その実装には支障がある場合は、おそらくこれが方法です。

は、PHPでデータを収集し、モーダルとしてフォームを開くには:PHPで

// You can set this to not open by default and bind the opening to a button, or a link, etc... 
$('form').dialog({ 
    modal: true 
}); 

は、フォームは通常通り$_POST内に含まれます。

print_r($_POST); 
0

ひとつのアイデアは、このようなフィールドを作成するためにjQueryのを使用することです:

$(".innerForm input").each(function() { 
    $(".parentForm").append("<input type='hidden' name='"+$(this).attr("name")+"' value='"+$(this).val()+"'"); 
}); 

あなたのページにこの方法を値を追加した場合、彼らはあたかも、あなたはちょうどそれらにアクセスすることができるだろう単にモーダル(?)ポップアップフォーム、データがフォーム内本当にこの方法として使用されるのdivのフォーム要素の一部をラップするために良いアイデアかもしれません$ _POST

$_POST("hidden_field_name") 
+0

これは非常に複雑に思えますが、この時点でDOMのサイズも倍増しています。 – MetalFrog

+0

非常に有効なポイント@MetalFrog;あなたのソリューションがOPのために働いているなら、あなたが示したように彼らのシリアル化をお勧めします。あなたの方がはるかにエレガントですが、この方法は依然として誰かにとって望ましいまたは有用かもしれません。 – veeTrain

関連する問題