2012-04-29 10 views
0

私はDrupal 7用のカスタムモジュールを構築しています。これには巨大なフォームが含まれています。フォームを変更し、新しい選択、テキストフィールド、チェックボックスを追加するjQueryコードを作成しました。フィールドをカスタムフォームで動的に作成する

フォームを送信すると、jQueryによって追加されたフィールドのデータを読み取ることができません。

デベロッパー向けのサンプル(http://drupal.org/project/examples)をダウンロードしました。 Add-moreボタン(ajax_example)という1つの例があります。それはすべてのデータを提出し、カウンタを増やし、新しいフィールドでフォーム全体を再構築し、レンダリングされたフォームが返されたようです。フォームサーバー全体をクライアントに送信しないようにする可能性はありますか?これは最速の解決策ではありません。

jQueryを使用してフォームを変更して送信し、再構築して検証したいと考えています。各変更は、サーバーにデータを送信する必要はありません。

ありがとう、マーティン。

答えて

1

I submit the form I am not able to read data from fields which were added by jQuery

はあなたinputsselect要素にnameフィールドを追加することを確認してください。

$_POST['here_is_the_name_which_you_give_to_your_elements']は、入力されたフォームフィールドのサーバー側の値を読み取ります。

私はフォームに複数の入力があり、どちらが動的に作成されるかを解読しました。 それを管理するには:

nameフィールドのvalueの後に[]を追加します。例:の場合 :

<input type='text' value='' name='my_custom_input[]' id='this_is_not_reqiured_1'> 
<input type='text' value='' name='my_custom_input[]' id='this_is_not_reqiured_2'> 

あなたはPOSTまたはGET経由でアレイにサーバー側で= my_custom_inputnameですべて<input>の値を取得することができます。

注:IDは不要ですが、操作したDOM要素が必要な場合はカウンタを使用して維持することができます。

+0

ありがとうございました。 Drupalではそれほど単純ではありません。 – MPeli

関連する問題