簡體   English   中英

JavaScript-同一表格上的多個從屬/級聯/鏈接選擇框

[英]javascript - multiple dependent/cascading/chained select boxes on same form

我正在通過jquery和json填充選擇框選項,但是我不確定如何在表單中處理相同鏈式選擇框的多個實例。

由於選擇框僅在需要時才呈現,因此某些記錄將具有十組鏈接的選擇框,而其他記錄則僅需要一組。 如何生成唯一選擇以支持自動填充第二選擇選項?

這是我正在使用的代碼,在此先感謝您提供的任何見解。

<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);
?>

如果為每個“選擇”(需要控制的每個)賦予一個“類”名稱以標識它們,那么您可以設置一個處理程序來更改所有這些內容,如下所示:

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

您選擇的元素將如下所示:

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

現在,如果<select>元素需要與其他 <select>元素具有特定的關系,那么您將不得不采用一種描述方式。 您可以使用“元數據” jQuery插件,以便可以對select元素本身進行注釋(再次在“ class”值中),而Javascript事件處理程序可以查看該內容。 不過,我不確定您的代碼是做什么的。

元數據插件在這里: http : //plugins.jquery.com/project/metadata

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM