繁体   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