質問するログイン新規登録
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

Q&A

解決済

1回答

1524閲覧

遷移元のリンクURLパラメータを、遷移先のoptionの初期値に設定したい。

gantamu

総合スコア3

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

0グッド

1クリップ

投稿2022/12/29 08:12

0

1

実現したいこと

codepenを参考に学習してるのですが、selectのoptionタグの値を特定のルールで動的に変化させるコードで、これを他のぺージのリンクのURLパラメータを、遷移先formタグのoptionの初期値に設定して、初期値も含め動的に変化させる方法が知りたいです。

該当のソースコード

HTML

1遷移元 2<a href="form.html?area-select=沖縄">FORM</a>


例) ?area-select=沖縄

の場合、プルダウンの<option>タグの初期選択項目を「沖縄」として設定したいです。
(対象のoptionにselectedをつけるなど。)

HTML

1遷移先 2 <form action="" method="post" name="area"> 3 <select name="area" id="area"> 4 <option value="関東">関東</option> 5 <option value="関西">関西</option> 6 <option value="沖縄">沖縄</option> // ←初期選択値にする 7 </select> 8 <select name="city" id="city"></select> 9 </form>

JavaScript

1var areaSelect = document.getElementById('area'); // 2var CITIES = { 3 '関東': ['東京', '神奈川', '千葉'], 4 '関西': ['大阪', '京都', '滋賀'], 5 '沖縄': ['鹿児島', '那覇'] 6}; 7areaSelect.addEventListener('change', function(e) { 8 var citySelect = document.getElementById('city'); 9 citySelect.options.length = 0; 10 if (areaSelect.selectedIndex) { 11 var cityArr = CITIES[areaSelect.value]; 12 for (var i = 0; i < cityArr.length; i++) { 13 citySelect.add(new Option(cityArr[i])); 14 } 15 } 16});

参考
The MIT License (MIT)
Copyright (c) 2022 levonlin (https://codepen.io/levonlin/pen/YqGZEa)

わかりずらい質問かもしれませんが、よろしくお願いします。

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

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

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

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

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

knuser

2022/12/29 08:27

> 初期値も含め動的に変化させる方法が知りたいです。 要件が十分理解できていないかもしれませんが、Optionのコンストラクターの引数(defaultSelected, selected)で選択状態を指定するか、あるいは、生成したオブジェクトの属性(seleted)をJavaScriptのロジックの中で修正すれば、動的に変更はできると思うのですが、いかがでしょうか? - https://developer.mozilla.org/ja/docs/Web/API/HTMLOptionElement/Option - https://developer.mozilla.org/ja/docs/Web/HTML/Element/option#attr-selected
gantamu

2023/01/06 02:58

ありがとうございます。yambejp様が教えてくれたコードを参考にやってみます。
guest

回答1

0

ベストアンサー

こんな感じで

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 const s=location.search; 4 const usp=new URLSearchParams(s); 5 [...usp.entries()].forEach(x=>{ 6 const elm=document.querySelector(`select[name="${x[0]}"]`); 7 if(elm){ 8 elm.value=x[1]; 9 } 10 }); 11}); 12</script> 13 14<a href="?area=%E6%B2%96%E7%B8%84">FORM</a> 15<form> 16<select name="area" id="area"> 17<option value="関東">関東</option> 18<option value="関西">関西</option> 19<option value="沖縄">沖縄</option> 20</select> 21<input type="submit" value="send"> 22</form>

投稿2022/12/29 10:57

yambejp

総合スコア118100

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

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

gantamu

2023/01/05 12:02

ありがとうございます。やってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問