タグ付けされた質問 「forms」

フォームAPIに関する質問に使用します。エンティティまたはエンティティフィールドフォームには使用しないでください。

2
フォームAPI:複数の/無制限の値を持つ 'file'または 'managed_file'タイプ
フォームを介してファイルをアップロードするために、「file」または「managed_file」タイプのフィールドが必要なフォームがあります。1つのフォームアイテムを介して複数の/無制限のファイルをアップロードできるようにする、フォームアイテムレンダー配列に設定できる属性はありますか? たとえば、管理UIを介してコンテンツタイプに新しいフィールドを追加する場合は、「ファイル」タイプのウィジェットを選択し、フィールド設定で値の数を「無制限」に設定します。これは私が探している動作の一種ですフォームAPIを介してこのファイルフィールドで使用します。ポインタを事前にありがとう!
7 forms  files 

3
「不正な選択が検出されました...」というエラーを解決します
私は以下のようなコードを書いており、すべて正常に動作しますが、フォームを送信しているときに以下のエラーが発生します。最初のドロップダウンの選択に基づいて2番目のドロップダウンをフィルタリングしようとしています。 違法な選択が検出されました。サイト管理者に連絡してください。 どうすればそのエラーを克服できますか? function dynamic_location_dropdown_form_alter(&$form, $form_state, $form_id) { if($form_id == 'product_node_form') { $location_options = array(); if(isset($form['field_destination']['und']['#default_value'][0])) { $destination = $form['field_destination']['und']['#default_value'][0]; } else { $destination = 0; } $location_options = dynamic_location_dropdown_locations($destination); $form['field_destination']['und']['#ajax'] = array( 'event' => 'change', 'wrapper' => 'squadron-wrapper', 'callback' => 'dynamic_location_dropdown_ajax_callback', 'method' => 'replace', ); $form['field_product_location']['#validated'] = true; $form['field_product_location']['und']['#prefix'] …
7 7  forms 

1
プログラムでノードを検証しますか?
プログラムで多くのノードを作成しています。明らかにそれらを保存する前に有効でなければなりません。このような$nodeオブジェクトには、CCKフィールドとカスタムフィールドが混在しています。 バリデーターはを設定するだけでform_set_error()、検証結果を返すことはほとんどないため、ノードが有効かどうかを確認するためにform-apiを経由する必要があります。 node_validate()次にを呼び出します(次にを呼び出しform_get_errors()ますform_set_error())。 このアプローチにはいくつかの問題があるようです: form_set_error()でメッセージを設定しますdrupal_set_message()。cron(セッションレスユーザー)などの場合、これは孤立した永続的なエラーメッセージをデータベースに追加します(印刷されないため、削除されません)。 返されるエラーの配列は、多次元フォーム配列で使用するために作成されます。特にCCKフィールドでは、実際のエラーを見つけるためにかなり深く掘り下げる必要があります。 ノードを保存したいだけなので、ユーザー向けのフォームには興味がありません。フォームAPIの使用は、間違っているように感じます。 よりシンプルでエレガントな方法はありますか?
7 6  forms  nodes 

2
hook_form_alter()を使用してログインフォームを変更するにはどうすればよいですか?
次のコードでログインフォームを変更しようとしています。 function git_form_alter(&$form, $form_state, $form_id) { $forms = array( 'user_login_block' => 'user-login-form', 'user_login' => 'user-login' ); if (array_key_exists($form_id, $forms)) { //my altering code } } これは、JavaScriptウィジェットを導入するopenidselectorモジュールから取得したもので、多かれ少なかれ、私がやろうとしていることです。 mysite / user / loginにアクセスしても、フォームを変更する必要があるブロックは呼び出されません。それは単に呼び出さないだけhook_form_alter()です。 別のことは、フックを呼び出している登録フォームまたはその他のフォームです。 誰か私に何ができるか教えてもらえますか?openidselectorが同じメソッドを使用する可能性はありますが、そのモジュールではコードは機能しますが、私のコードでは機能しませんか?
7 forms  hooks 

2
「#markup」フォーム要素に子を含めることはできません
フォームを持っていますが、フォームがレンダリングされているときに「#markup」要素の子が表示されません。 $form['html'] = array( '#type' => 'markup', '#markup' => '<h2>My Heading</h2>', '#tree' => true, ); $form['html']['element'] = array( '#type' => 'textfield', '#title' => 'Foo', ); この例では、「要素」フォームフィールドはレンダリングされません。 これはDrupalのバグですか、それとも何か特別なことをする必要がありますか?
7 7  forms 

4
#AJAXとFormAPIのデバッグ
#ajaxの操作中に現在の '$ form_state'変数を表示する最も簡単な方法は何ですか? 各ajaxロード時にdpm()を自動的に更新する方法はありますか? 問題がある場合は、ノード送信フォームでajaxをテストしています。
7 forms  ajax  debugging 

2
モジュールページの複数のフォーム
モジュールを作成しました。フォームを作成してページに実装しました: function tudakozo_menu() { $items['tudakozo'] = array( 'title' => t('Tudakozo'), 'page callback' => 'drupal_get_form', 'page arguments' => array('tudakozo_nevszerint_form'), 'access callback' => TRUE, ); return $items; } これについて別のフォームが欲しい
7 forms 


2
(非)各フォーム要素のフォーマット
のようなものを宣言するとき $form['textfield'] = array( '#type' => 'textfield', '#title' => 'textfield title', '#maxlength' => 8, '#required' => true, ); 出力は次のようになります。 <div id="edit-textfield-wrapper" class="form-item"> <label for="edit-textfield">textfield title: <span title="This field is required." class="form-required">*</span></label> <input type="text" class="form-text required" value="" size="60" id="edit-textfield" name="textfield" maxlength="8"> </div> しかし、私はコンテナを削除して喜んでdivとlabel私のフィールドの一部から、このような何か: <input type="text" class="form-text required" value="" size="60" id="edit-textfield" name="textfield" …
7 theming  forms 

4
ユーザーにファイルを「プッシュ」した後にリダイレクトすることは可能ですか?
サイトの使用状況に関する内部分析をサイトが生成する設定があります。ユーザーは個人分析のダウンロードを要求できます。この情報は機密情報であるため、ファイルを作成していません。変数にCSVファイルを生成し、これをユーザーに「プッシュ」します。 function _cex_download( $output, $filename ) { header("Pragma: public"); header("Expires: 0"); header("Cache-Control: private"); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=$filename"); header("Accept-Ranges: bytes"); echo $output; exit; } これにより、ユーザーのブラウザに「ファイルの保存」ダイアログが表示され、ユーザーがファイルを作成します。サイトの管理者が「破壊的なエクスポート」をトリガーできることを除いて、これは正常に機能します。この状況では、破壊的なエクスポートを実行する前に管理者が受け入れる必要がある二次確認フォームがあります。 問題は、この「プッシュダウンロード」ルーチンがDrupalページの処理を終了することです。プッシュダウンロードルーチンが呼び出された後、管理者をページにリダイレクトする方法はありません。管理者はブラウザから「ファイルを保存」ダイアログを表示しますが、確認フォームには残ります。 私はマルチステップフォームルートを試してみましたが、奇妙なリダイレクトで1日たたき回った後、私はその混乱から後退しました。ChaosToolのマルチステップフォームロジックも検討し始めました。しかし、問題は本当にこの「プッシュダウンロード」がガイド付きプロセスキラーであるということです。 おそらく、最初の「エクスポート」ボタンのクリックをインターセプトするjquery確認ダイアログ、完全にJavaScriptで確認、php / FAPI確認フォームの作成を忘れ、ユーザーがjqueryで確認すると、インターセプトされたエクスポートをプログラムで送信しますか?
7 7  forms  redirection 

3
システムのコンタクトフォームメッセージ送信プロセスにフックして、生成されたHTMLを変更するにはどうすればよいですか?
私は、サイト全体のシステムの連絡先を使用して、訪問者がサイト所有者にメッセージを送信できるようにするDrupalサイトを持っています。訪問者がフォームを送信すると、ユーザーはホームページにリダイレクトされ、上部の読みに付箋が表示されます。 メッセージを送信しました。 私の質問は、このメッセージを変更して出力にHTMLを追加することは可能ですか?理想的には、JavaScriptを追加して、Googleアナリティクスアカウントの仮想ページビューを作成し、それを目標のコンバージョンとして追跡できるようにします。 これは私のテンプレートファイルにあるhook_関数になると思いますが、私はこのプロセスに比較的慣れていません。
7 7  forms 

5
検索ボックスを上書きするには?
<div class="fr_search"> <form action="/" accept-charset="UTF-8" method="post" id="search-theme-form"> <input name="search_theme_form" id="edit-search-theme-form-1" size="15" value="" class="form-text" /> <!-- … --> </form> </div> 上記のコードは、Drupal Searchモジュールによって生成されます。このコードをフォームに追加します。 <select class="search_l" onchange="selectSearch(select)"> <option value="0">whole site search</option> <option value="1">google search</option> </select> どうすればよいですか?
7 7  forms  search 


1
フォームAPI画像プレビュー
でのfapiでの画像プレビューに関する多くの議論を読みました'managed_file'が、D8でこれを適切に行う方法について決定的な答えを見つけることができません。 明白な解決策はを再利用することですがDrupal\image\Plugin\Field\FieldWidget\ImageWidget、これを達成する方法がわかりません。 だから私の質問は、D8のフォームに画像プレビュー付きの画像アップロードフィールドをどのように持つことができ、buildForm関数の連想配列はどのようになるのでしょうか。
6 8  forms  media 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.