選択されたものに基づいてフォームアクションを送信するDjango

sidp

私はDjangoとWeb開発全般にかなり慣れていないので、これらのアイデアの多くを概念化しようとしています。

私が理解するのに苦労しているのは、設定した選択/ドロップダウンボックスで選択した内容に基づいて、[送信]ボタンをクリックしたときにHTMLフォームのアクション属性を適切に処理する方法です。

たとえば、ユーザーがドロップダウンボックスで車を選択(または以下の例ではトリム)してから[移動]ボタンをクリックした場合、車のトリムに関する情報を含む新しいページにユーザーを送信します。これが私が持っているものです:

テンプレート

	<!-- Bar of dropdowns for searching. -->
	<div class="container-fluid">
		<form action="" method="get" class="form-inline" id="dropdownText">
			<div class="form-group" id="dropdownGroup">

				<span style="display:inline-block" class="selectBox">
					<select class="form-control" id="make">
						<option value='empty'></option>
						<!-- List each make's name. -->
						{% for make in allMakes %}
						<option value="{{ make.id }}">{{ make.name }}</option>
						{% endfor %}
					</select>
					<label for="make" style="display:block">Make</label>
				</span>

				<span style="display:inline-block" class="selectBox">
					<select class="form-control" id="model" disabled>
						<!-- List each make's model's name. -->
					</select>
					<label for="model" style="display:block">Model</label>
				</span>

				<span style="display:inline-block" class="selectBox">
					<select class="form-control" id="trim" disabled>
						<!-- List all trims for each make/model. -->
					</select>
					<label for="trim" style="display:block">Trim</label>
				</span>

			</div>
		</form>
		<form action="" id="trimDetail">
			<div class="text-center">
				<button type="submit" class="btn btn-default" id="go">GO!</button>
			</div>
		</form>
	</div>

それはどのようなものか

http://puu.sh/phaHG/105ed07b28.png

車のトリムのDetailView

class DetailView(generic.DetailView):
    model = Trim
    template_name = 'search/detail.html'

ビューに対応するURL

url(r'^(?P<pk>\d+)/$', DetailView.as_view(model=Trim,
template_name='search/detail.html')),

トリムを選択して[移動]をクリックすると、ページが更新され、URLが次のように変更されます。

"/?trimId = 4"

、trimIdはユーザーが選択したものに基づいて変更されますが、IDの情報を表示するテンプレートには送信されません。

ボタンをクリックしてjQueryを使用してフォームアクションを変更するだけでこれを機能させることができますが、これが悪い習慣であるかどうかはわかりませんでした。適切なDjangoの方法を学びたいと思います。

それを行う私のjQueryの方法:

var $elTrim = $('select#trim'); // The trim select box.
var $trimForm = $('form#trimDetail'); // The form around the button.

function updateAction(){

    if($elTrim.find('option:selected').val() != 'empty'){
        $trimForm.attr('action', $elTrim.val());
    }

}

$elTrim.change(updateAction);
ダニエルローズマン

これは良い方法ではありません。検索ページは常に同じ場所に送信する必要があります。そのページは、結果を直接表示するか、表示する関連ページにリダイレクトするかのいずれかを担当できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

選択に基づいてフォームをアクションに送信

分類Dev

jQueryを使用した選択に基づいてフォームアクションを動的に変更する

分類Dev

送信ボタンが押されたときに選択したオプションに基づいてHTMLフォームアクションを変更する

分類Dev

同じフォームのドロップダウンで選択されたアイテムに基づいて、パレットの使用可能なセクションから選択されたセクションにアイテムを移動する方法は?

分類Dev

JavaScript:選択に基づいてフォームアクション属性値を変更する方法は?

分類Dev

選択したオプションに基づいてさまざまな受信者にメールを送信するPHPフォーム

分類Dev

jQueryを使用した選択に基づいてフォームアクションを動的に変更する-デフォルトの送信に関する問題

分類Dev

フォームに送信されたデータに基づいて検証を選択する

分類Dev

Django:選択した他のフォームフィールドオプションに基づいて、異なるクエリセットでフォームフィールド選択オプションを変更するにはどうすればよいですか?

分類Dev

選択したオプションに基づいてフォームフィールドを表示する

分類Dev

選択したオプションに基づいてdiv情報をフォームに表示するPHP

分類Dev

選択オプションに基づいてフォームのフィールドを更新する方法

分類Dev

フォーム-最初の選択に基づいてMySQLクエリでオプションを更新します

分類Dev

フォーム-最初の選択に基づいてMySQLクエリでオプションを更新します

分類Dev

Symfony2:送信されたデータに基づいてコレクションで異なるフォームタイプを使用する

分類Dev

ドロップダウンボックスからの変更時に選択されたものに基づいて、他の入力フィールドを作成するためのフォームを作成します

分類Dev

CharFieldの選択に基づいてDjangoフォームを動的に生成する

分類Dev

クリックされたボタンに基づいてフォーム送信URLを変更する

分類Dev

選択オプション要素に基づいてフォームを別のURLにリダイレクトしますが、フォームを送信した後

分類Dev

選択したドロップダウン値に基づいてフォーム値アクションを変更するにはどうすればよいですか?

分類Dev

選択オプションが無効になっているフォームがデフォルトで選択されており、検証するものが何も送信されていません

分類Dev

フォーム送信時に動的に送信された選択オプションを保持する

分類Dev

Angular Materialリアクティブフォーム、他の選択に基づいてマット選択オプションを更新

分類Dev

Laravelのクリックに基づいて2つのアクションを送信する1つのフォーム

分類Dev

vuejsによって選択された別の選択オプションに基づいて選択オプションを変更する方法

分類Dev

Googleフォームの「回答に基づいてセクションに移動」のように、HTML / NodeJSフォームを応答に基づいて別のフォームに移動させるにはどうすればよいですか。

分類Dev

CakePHPのユーザー入力に基づいてフォームアクションを変更する

分類Dev

選択されたデータリストオプション(別のページ)に基づいたチェックボックスを選択する方法

分類Dev

選択された別の選択オプション(配列)に基づいて選択オプションを変更する方法は?

Related 関連記事

  1. 1

    選択に基づいてフォームをアクションに送信

  2. 2

    jQueryを使用した選択に基づいてフォームアクションを動的に変更する

  3. 3

    送信ボタンが押されたときに選択したオプションに基づいてHTMLフォームアクションを変更する

  4. 4

    同じフォームのドロップダウンで選択されたアイテムに基づいて、パレットの使用可能なセクションから選択されたセクションにアイテムを移動する方法は?

  5. 5

    JavaScript:選択に基づいてフォームアクション属性値を変更する方法は?

  6. 6

    選択したオプションに基づいてさまざまな受信者にメールを送信するPHPフォーム

  7. 7

    jQueryを使用した選択に基づいてフォームアクションを動的に変更する-デフォルトの送信に関する問題

  8. 8

    フォームに送信されたデータに基づいて検証を選択する

  9. 9

    Django:選択した他のフォームフィールドオプションに基づいて、異なるクエリセットでフォームフィールド選択オプションを変更するにはどうすればよいですか?

  10. 10

    選択したオプションに基づいてフォームフィールドを表示する

  11. 11

    選択したオプションに基づいてdiv情報をフォームに表示するPHP

  12. 12

    選択オプションに基づいてフォームのフィールドを更新する方法

  13. 13

    フォーム-最初の選択に基づいてMySQLクエリでオプションを更新します

  14. 14

    フォーム-最初の選択に基づいてMySQLクエリでオプションを更新します

  15. 15

    Symfony2:送信されたデータに基づいてコレクションで異なるフォームタイプを使用する

  16. 16

    ドロップダウンボックスからの変更時に選択されたものに基づいて、他の入力フィールドを作成するためのフォームを作成します

  17. 17

    CharFieldの選択に基づいてDjangoフォームを動的に生成する

  18. 18

    クリックされたボタンに基づいてフォーム送信URLを変更する

  19. 19

    選択オプション要素に基づいてフォームを別のURLにリダイレクトしますが、フォームを送信した後

  20. 20

    選択したドロップダウン値に基づいてフォーム値アクションを変更するにはどうすればよいですか?

  21. 21

    選択オプションが無効になっているフォームがデフォルトで選択されており、検証するものが何も送信されていません

  22. 22

    フォーム送信時に動的に送信された選択オプションを保持する

  23. 23

    Angular Materialリアクティブフォーム、他の選択に基づいてマット選択オプションを更新

  24. 24

    Laravelのクリックに基づいて2つのアクションを送信する1つのフォーム

  25. 25

    vuejsによって選択された別の選択オプションに基づいて選択オプションを変更する方法

  26. 26

    Googleフォームの「回答に基づいてセクションに移動」のように、HTML / NodeJSフォームを応答に基づいて別のフォームに移動させるにはどうすればよいですか。

  27. 27

    CakePHPのユーザー入力に基づいてフォームアクションを変更する

  28. 28

    選択されたデータリストオプション(別のページ)に基づいたチェックボックスを選択する方法

  29. 29

    選択された別の選択オプション(配列)に基づいて選択オプションを変更する方法は?

ホットタグ

アーカイブ