先日質問させていただいた連動プルダウンですが、
うまくいったのですが、複数入れた場合に、
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つ入れたいと考えています。)
何卒、どうぞよろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。