使用其他选择框更改选择框的值

时间:2019-03-25 16:52:24

标签: php html

我正在使用管理表格,必须先选择客户,然后再选择建筑物。

我在数据库中有一个表,其中包含客户,另一个具有正确关联的客户建筑物。

问题是我想对客户进行选择,对建筑物进行选择,但是我不想显示所有建筑物,而只显示所选客户的建筑物。

经过大量研究,我能够执行以下代码,但无法获取将bd的值提取到建筑物的salect。

此表格供管理人员将任务分配给技术人员,技术人员将不得不在此提供预签约的服务。

<!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建筑2

AAA建筑3

...

1 个答案:

答案 0 :(得分:2)

如果我理解这个问题,则希望(a)捕获用户对客户端的SELECT选择,然后使用该信息从数据库中获取适当的信息,以便填充第二个SELECT。

这正是为其创建AJAX的方案的类型。它实际上非常简单(使用jQuery比使用纯js更简单,但还不是全部...)。以下是一些有关其工作原理的示例:

dropdown options is dependent from another dropdown options (all value from database)

A basic video tutorial re ajax (pure 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;