1

jquery と json を使用して選択ボックスのオプションを入力していますが、フォーム内の同じ連鎖選択ボックスの複数のインスタンスに対処する方法がわかりません。

選択ボックスは必要な場合にのみレンダリングされるため、一部のレコードには 10 セットの連鎖選択ボックスがあり、他のレコードには 1 つしか必要ありません。二次選択オ​​プションの自動入力をサポートするために、一意の選択をどのように生成しますか?

これが私が使用しているコードです。あなたが提供できる洞察を前もって感謝します。

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function populateACD() {
        $.getJSON('/acd/acd2json.php', {acdSelect:$('#acdSelect').val()},
function(data) {
                var select = $('#acd2');
                var options = select.attr('options');
                $('option', select).remove();
                $.each(data, function(index, array) {
                  options[options.length] = new Option(array['ACD2']);
                });
        });
}
$(document).ready(function() {
        populateACD();
        $('#acdSelect').change(function() {
                populateACD();
        });
});
</script>


<?php
require_once('connectvars.php');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$squery = "SELECT ACD1ID, ACD1 from ACD1";
$sdata = mysqli_query($dbc, $squery);
  // Loop through the array of ACD1s, placing them into an option of a select
echo '<select name="acdSelect" id="acdSelect">';
while ($row = mysqli_fetch_array($sdata)) {
echo "<option value=" . $row['ACD1ID'] . ">" . $row['ACD1'] . "</option>\n";
    }
  echo '</select><br /><br />';

<select name="acd2" id="acd2">
</select>

acd2json.php

<?php
$dsn = "mysql:host=localhost;dbname=wfn";
$user = "acd";
$pass = "***************";
$pdo = new PDO($dsn, $user, $pass);
$rows = array();
        if(isset($_GET['acdSelect'])) {
          $stmt = $pdo->prepare("SELECT ACD2 FROM ACD2 WHERE ACD1ID = ? ORDER BY ACD2");
          $stmt->execute(array($_GET['acdSelect']));
          $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
echo json_encode($rows);
?>
4

1 に答える 1

0

各「選択」(つまり、制御する必要がある各) に、それらを識別する「クラス」名を付けると、次のように、それらすべてに対する変更のハンドラーを設定できます。

$('select.controlMe').click(function() {
  // ... whatever
});

select 要素は次のようになります。

<select name='paramName' class='controlMe'>

要素が他の<select>要素と特定の関係を持つ必要がある場合は、それを記述する方法が必要です。「メタデータ」jQuery プラグインを使用して、select 要素自体に (ここでも「class」値で) 注釈を付け、Javascript イベント ハンドラーがそれを確認できるようにすることができます。ただし、コードが何をするのか正確にはわかりません。 <select>

メタデータ プラグインはこちら: http://plugins.jquery.com/project/metadata

于 2010-03-10T14:29:23.223 に答える