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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

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

JavaScript

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

Q&A

1回答

788閲覧

連動プルダウン 複数入れるとうまくいかない

mikiko.s

総合スコア14

PHP

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

JavaScript

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

0グッド

1クリップ

投稿2021/12/14 11:56

先日質問させていただいた連動プルダウンですが、
うまくいったのですが、複数入れた場合に、
2つ目以降の連動がうまくいきません。

1つ目のプルダウンのソースを下記に書かせていただきます。

<select class="parent1" name="line1_id" required> <option value="" class="msg" disabled selected>路線を選択</option> <?php $recordSet_City=mysqli_query($conn, 'SELECT * FROM line'); while ($City = mysqli_fetch_assoc($recordSet_City)){ $LINE1_NAME=htmlspecialchars($City['line_name']); $LINE1_CD=htmlspecialchars($City['line_cd']); ?> <option value="<?=$LINE1_CD?>"><?=$LINE1_NAME?></option> <?php }?> </select> <select class="children1" name="station1_id" required> <option value="" class="msg" disabled selected>駅を選択</option> <?php $recordSet_St=mysqli_query($conn, 'SELECT * FROM station'); while ($St = mysqli_fetch_assoc($recordSet_St)){ $STATION1_CD=htmlspecialchars($St['station_cd']); $STATION1=htmlspecialchars($St['station_name']); $STATION1_LINE_CD=htmlspecialchars($St['line_cd']); ?> <option value="<?=$STATION1_CD?>"data-val="<?=$STATION1_LINE_CD?>"><?=$STATION1?></option> <?php }?> </select> <script>$(function() { var $children1 = $('.children1'); var original = $children1.html(); $('.parent1').change(function() { var val1 = $(this).val(); $children1.html(original).find('option').each(function() { var val2 = $(this).data('val'); if (val1 != val2) { $(this).not('optgroup,.msg').remove(); } }); if ($(this).val() === '') { $children1.attr('disabled', 'disabled'); } else { $children1.removeAttr('disabled'); } }); }); </script>

これを複数入れたいため、
まずは、parent1、children1のクラスを
parent2、children2と変えてソースを入れたところ、
2つ目のプルダウンのジャバスクリプトが動きませんでした。

どのように記述すれば、複数入れてもプルダウンがうまく動くか
ご教示いただけますでしょうか。
(全部で5つ入れたいと考えています。)

何卒、どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

  • 予め全データを取得しておいて条件に合わせてフィルタするか
  • selectのchangeイベントをみて非同期でデータを取りに来て更新するか

のどちらかがよいでしょう
セレクトボックス表記の途中にdbを検索するソースを埋め込むのは
非効率ですしインタラクティブにもならないのでおすすめできません

投稿2021/12/15 03:34

yambejp

総合スコア114839

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問