ユーザーが指定した条件に応じてデータを取得してグラフを描画する機能を実装しています。サーバー側の言語はNode.jsを使っています。
決定ボタンを押すと入力された指定条件をクエリパラメータに変換して画面遷移をするという仕組みになっています。
入力内容を画面遷移後にも保持したいのですが、どのような方法が考えられるでしょうか?
自分で調べてみると入力内容をセッション変数に保存するというものが多く出てきたのですが、フォーム送信の場合を想定したものが多く、自分のケースに当てはまるのかよく分からなかったので質問させていただきました。
HTML
1 <div class="search-box col-md-6"> 2 <p>[ 条件を指定してデータを取得する ]</p> 3 <div class="search-items"> 4 <div class="radio-inputs"> 5 <input type="radio" name="gender" value="male" class="gender-inp"> 6 <label for="inq1">男性</label> 7 <input type="radio" name="gender" value="famale" class="gender-inp"> 8 <label for="inq2">女性</label> 9 <input type="radio" name="gender" value="" class="gender-inp"> 10 <label for="inq3">指定なし</label><br> 11 </div> 12 <input type="text" name="minAge" class="age-inp"><span>才 〜</span><input type="text" name="maxAge" class="inp age-inp"><span>才</span><br> 13 <a class="btn btn-secondary search" id="search">決定</a> 14 </div> 15 </div>
JavaScript
1const searchButton = document.getElementById('search'); 2 3searchButton.onclick = () => { 4 const inputs = document.querySelectorAll('.age-inp'); 5 const keyval1 = [...inputs] 6 .filter((e) => e.value) 7 .map((e) => [e.name, e.value]); 8 9 const radioInputs = document.querySelectorAll('.gender-inp'); 10 const keyval2 = [...radioInputs] 11 .filter((e) => e.checked && e.value) 12 .map((e) => [e.name, e.value]); 13 14 const keyval = keyval1.concat(keyval2); 15 16 const searchParams = new URLSearchParams(keyval); 17 const href = `?${searchParams.toString()}`; 18 searchButton.setAttribute('href', href); 19}; 20
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/25 17:07