簡體   English   中英

使用其他選擇框更改選擇框值

[英]change select box value using other select box

我正在處理一個管理表格,我必須先選擇客戶,然后再選擇建築物。

我在數據庫中有一個包含客戶的表,另一個與正確關聯的客戶的建築物。

問題是 II 想對客戶進行選擇,對建築物進行選擇,但不是顯示所有建築物,而是僅顯示所選客戶的建築物。

經過大量研究,我能夠執行下面的代碼,但是我無法將 bd 的值提取到建築物的銷售處。

此表格供管理人員將任務分配給技術人員,技術人員必須在那里進行預先簽約的服務。

 <!DOCTYPE html> <html> <head> <script> function populate(s1,s2){ var s1 = document.getElementById(s1); var s2 = document.getElementById(s2); s2.innerHTML = ""; if(s1.value == "Chevy"){ var optionArray = ["|","camaro|Camaro","corvette|Corvette","impala|Impala"]; } else if(s1.value == "Dodge"){ var optionArray = ["|","avenger|Avenger","challenger|Challenger","charger|Charger"]; } else if(s1.value == "Ford"){ var optionArray = ["|","mustang|Mustang","shelby|Shelby"]; } for(var option in optionArray){ var pair = optionArray[option].split("|"); var newOption = document.createElement("option"); newOption.value = pair[0]; newOption.innerHTML = pair[1]; s2.options.add(newOption); } } </script> </head> <body> <h2>Choose Your Car</h2> <hr /> Choose Car Make: <select id="slct1" name="slct1" onchange="populate(this.id,'slct2')"> <option value=""></option> <option value="Chevy">Chevy</option> <option value="Dodge">Dodge</option> <option value="Ford">Ford</option> </select> <hr /> Choose Car Model: <select id="slct2" name="slct2"></select> <hr /> </body> </html>

作為最終結果,例如,如果我選擇客戶 AAA 必須僅出現在與客戶 AAA 關聯的建築物中:

AAA-建築1

AAA-buildings2

AAA-buildings3

...

如果我理解這個問題,您希望 (a) 捕獲用戶對客戶端的 SELECT 選擇,然后使用該信息從數據庫中獲取適當的信息以填充第二個 SELECT。

這正是創建 AJAX 所針對的場景類型。 它實際上非常簡單(使用 jQuery 比使用純 js 更簡單,但不是一切......)。 以下是有關其工作原理的一些示例:

下拉選項依賴於另一個下拉選項(數據庫中的所有值)

一個關於ajax的基本視頻教程(純javascript)


代碼示例:

HTML:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<select id="slct1" name="slct1">
  <option value=""></option>
  <option value="Chevy">Chevy</option>
  <option value="Dodge">Dodge</option>
  <option value="Ford">Ford</option>
</select>
<hr />
Choose Car Model:
<select id="slct2" name="slct2"></select>

JS/JQuery:

$('#slct1').change(function(){
    let s1 = this.value;
    $.ajax({
        type: 'post',
         url: 'myajax.php',
        data: 's1=' + s1
    }).done(function(d){
        $('#slct2').html(d); //"d" can be any varname you want (here AND line above)
    });
});

PHP文件:(myajax.php)

<?php
    $sel1 = $_POST['s1'];

    if ($sel1 == 'Chevy'){
        $out = '<option value="Cobalt">Cobalt</option>';
        $out += '<option value="Camaro">Camaro</option>';
        $out += '<option value="Malibu">Malibu</option>';
        $out += '<option value="Silverado">Silverado</option>';
    }elseif ($sel1 == 'Ford'){
        $out = '<option value="Model A">Model A</option>';
        $out += '<option value="F150">F150</option>';
        $out += '<option value="Mustang">Mustang</option>';
        $out += '<option value="Mondeo">Mondeo</option>';
    }

    echo $out;

示例 2:

未經測試和現成的,但你明白了

<?php
    include 'connect.php'; //connects to MySQL and creates $conn

    $sel1 = $_POST['s1'];

    $query = "SELECT * FROM `cars` WHERE `brand`='" .$sel1. "' ";
    $aR = mysqli_query($conn, $query);

    $out = '';
    while ($r = mysql_fetch_assoc($aR)){
        $out .= '<option value="' .$r['model']. '">' .$r['model']. '</option>';
    }
    echo $out;

暫無
暫無

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

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