質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1743閲覧

【検索画面】<form>外の項目をパラメータに含めたい場合

pecchan

総合スコア587

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/09/24 08:22

rails5.2ですが、どちらかと言うとjqueryやjava scriptに関する質問かと思います。
実装方法について相談させて下さい。

検索ボタンのクリックで検索実行する、シンプルな検索画面を実装しました。

これに並び替えを追加しようとしてます。

並び替えの指定は、selectboxにします。
ただ、このselectboxは画面の構成上、現在のform内に配置できません。
さらに、selectbxoのchangeイベントでも検索可能にしたいです。

どうすれば可能か自分なりに考えてみました。
以下の考え方で合ってますでしょうか?

・form内のパラメータと、selectboxのパラメータをまとめるjsを作る
・検索ボタン実行時とselectbox change時に、そのjsを呼ぶ
・そのjsからサーバへ送信??

上記の上から2つ目までは自分で作れそうですが、最後は可能なのでしょうか?
考え方が間違ってる等、何でもアドバイスいただけると幸いです。
宜しくお願い致します。

html

1 2<!-- 並び替え用セレクトボックス --> 3<div> 4 <select name="search[order_by]" > 5 <option value="1">登録順</option> 6 <option value="2">高い順</option> 7 <option value="3">安い順</option> 8 </select> 9</div> 10 11 12<!-- 検索用フォーム --> 13<form action="/items" accept-charset="UTF-8" method="get"> 14 <input value="" type="text" name="search[keyword]" /> 15 <input type="submit" value="検索" /> 16</form> 17

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

流れは問題ないと思います。

・form内のパラメータと、selectboxのパラメータをまとめるjsを作る

パラメータのまとめ方としては、他にも方法があるかもしれませんが、以下のようなものをよく見る気がします。
form内にtype="hidden"でselectboxのvalueを入れるinputタグを用意しておき、
送信時にselectboxの値を取得して、用意したinputタグのvalueに入れる
or
送信イベント発生時に、javascriptでinputタグを生成し、
同じようにvalueにselectboxの値を入れる。

・そのjsからサーバへ送信??

非同期処理でなく、同期処理(ページ遷移がある)で行うのであれば、JavaScriptでform送信を行うだけなので、調べればたくさんやり方がでてくるのでそこまで、難しくないと思います。

あと気になる点としては、
フォーム送信後に、検索で使用したキーワードを保持しておかないと、selectboxで並び順を変更した際に、
キーワードなしでの並び順変更、つまり全件検索の並び替えになってしまうと思うので、前回の入力を保持させた方がよいと思います。

投稿2020/09/24 09:38

hayato7

総合スコア1135

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2020/09/24 21:29

有難う御座います。 素人なので考え方に自身がありませんでした。 その流れで作ってみます! あと前回入力の保持の件も有難う御座います。 現段階で検索キーワードなど保持→出力できてますが、今回追加するselectboxも同じようにします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問