繁体   English   中英

如何从下拉列表中获取所选值并将其粘贴到SQL查询

[英]How to get the selected value from dropdown list and past it to sql query

我有两个下拉列表框,第一个是销售区域包含从cookie获取的不同种类的字母,第二个下拉人员名称是根据从第一个下拉列表中选择的值来更改的。 如何管理将选定的选项值传递给我的sql查询,以便可以根据选定的销售区域进行更改。 这是我想要获得的结果,我将代码插入到代码段中可以轻松进行编辑和演示。

 function fetch_select(val) { $.ajax({ type: 'post', url: 'updateleave.php', data: { get_option:val }, success: function (response) { document.getElementById("slct2").innerHTML=response; } }); 
 <table > <tr> <td> Sales Area <select name="Area" id="area" > <?php $sarea = explode(",",$_COOKIE['cooAreaCode']); foreach($sarea as $item){ ?> <option value="<?php echo strtolower($item); ?>"><?php echo $item; ?></option> <?php } ?> </select > </td> <? $var = $_POST['Area']; $sql = "SELECT StaffName FROM tblStaff WHERE AreaCode= '$var'"; $rs = odbc_exec($link,$sql); while ($row = odbc_fetch_array($rs)) { $porr[] = $row; } odbc_free_result($rs); odbc_close($link); ?> <td> Staff Name <select id="slct2"> ?> </select> </td> <label class="form_field">Your selected <span id="aggregator_name"></span></label> 

(updateleave.php)

if (isset($_POST['get_option'])) {

$ item = $ _ POST ['get_option'];

  $sql = "SELECT  StaffName FROM tblStaff WHERE AreaCode= '$item'";
  $rs = odbc_exec($link,$sql);
 while ($row = odbc_fetch_array($rs)) {
     $porr[] = $row;
   }
    for($i=0; $i < count($porr);$i++) {
   echo "<option  value="strtolower($porr[$i]['StaffName']);" >" .$porr[$i]['StaffName']."</option>";
  odbc_free_result($rs);   
 odbc_close($link); 
    }
?>

我不是jQuery的狂热者,因此您需要将Javascript转换为您的需要,但是您需要的是捕获第一个下拉列表的onchange事件,并使用它动态处理第二个下拉列表的SQL。

<script>
document.getElementById('area').onclick = function(){
    var xmlhttp;
    var formData = new FormData();
    formData.append('area_value', this.value);
    if(window.XMLHttpRequest){
            xmlhttp=new XMLHttpRequest();
    } else {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
            if(xmlhttp.readyState==4 && xmlhttp.status==200){
alert(xmlhttp.responseText); // for DEBUGGING.
                    if(xmlhttp.responseText == 'false'){
                            alert(xmlhttp.responseText);
                    } else {
                            document.getElementById('slct2').innerHTML = xmlhttp.responseText;
                    }
            }
    }
    xmlhttp.open("POST", 'build_slct2.php');
    xmlhttp.send(formData);
    xmlhttp.onerror = function () { console.error(xmlhttp.statusText); }
}
</script>

build_slct2.php脚本将使用$_POST['area_value']创建所需的SQL查询,处理该查询并构建<option></option>列表,该列表最终将显示在slct2下拉列表中。 build_slct2.php文件将仅echoslct2的新内容。

使用append在select标记中添加选项标记也可以完成第一个下拉菜单(“ #area”)的更改事件中的所有工作

$(document).ready(function(){
$("#area").change(function()
{
var val =$(this).val();
 $.ajax({
 type: 'post',
 url: 'updateleave.php',
 data: {
  get_option:val
 },
 success: function (response) {
$("#clct2").append(response);
}
 });
});
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM