php - 如何使用 ajax、php 和 html 将一个下拉列表填充到另一个下拉列表中

标签 php javascript mysql ajax drop-down-menu

我想使用ajax根据另一个人的输入填充下拉列表。但却陷入了死胡同,无法找出问题所在。它使用公司名称来打开该公司制造的手机的下拉列表。

这是源 php 文件:

 <body>
 <div class="ex">
 <form id="mob1" >
  <label></br> Select Mobile 1:</label>
  <label></br> --Company-- <label>
  <select id="d1mob1" onchange="getmob(this.value)">
  <?php 
    $q1=mysqli_query($con,"select distinct compName from umobile order by compName ASC");
    while($row = mysqli_fetch_array($q1)) 
    {
        $options .="<option value=\"". $row['compName'] ."\">" . $row['compName'] . "</option>";
    }
    echo $options;
  ?>
  </select>
  <label class="ey" name="mlabel"></br> --Mobile--<label>

  <select id="d2mob1" >
  <?php 
    if($q2=mysqli_prepare($con,"SELECT DISTINCT mobname FROM umobile WHERE compName=? "))
    {
        mysqli_stmt_bind_param($q2,"s",$comp);
        mysqli_stmt_execute($q2);
        mysqli_stmt_bind_result($q2,$r);
    }   

    while(mysqli_stmt_fetch($q2))
    {
        $name .="<option value=\"".$r."\" >".$r."</option>";        
    }
    echo $name;
?>
</select>

</form>
</div>

 </body>

这是为了查询手机名称而引用的 getmob php 文件:

  <?php 
$name="";
$comp=$_GET['d1mob1'];
if($q2=mysqli_prepare($con,"SELECT DISTINCT mobname FROM umobile WHERE compName=? "))
{
    mysqli_stmt_bind_param($q2,"s",$comp);
    mysqli_stmt_execute($q2);
    mysqli_stmt_bind_result($q2,$r);
}   

while(mysqli_stmt_fetch($q2))
{
    $name .="<option value=\"".$r."\" >".$r."</option>";        
}
echo $name;
   ?>

最后这是下拉列表中使用的 javascript:

  function getmob(compname)
  {
    var strURL="getmob.php?d1mob1="+compname;
    var req = getXMLHTTP();
    if (req)
    {
     req.onreadystatechange = function()
     {
       if (req.readyState == 4) // only if "OK"
       {
         if (req.status == 200)
         {
           document.getElementById('mlabel').innerHTML=req.responseText;
         } else {
          alert("There was a problem while using XMLHTTP:\n" + req.statusText);
        }
      }
    }
   req.open("GET", strURL, true);
   req.send(null);
  }
  }

我错过了什么?请帮忙。

最佳答案

document.getElementById('mlabel')???您想将responseText 放入d2mob1 中吗?

关于php - 如何使用 ajax、php 和 html 将一个下拉列表填充到另一个下拉列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430549/

相关文章:

php - 如何建立一个使用 MySQL 数据库的问答网站?

php: textarea excel 粘贴到数组

javascript - 最终用户脚本

mysql - 检索项目类型、它们的子类型以及这些类型和子类型的计数

javascript - 使用 for 循环创建变量数组对象

php - PDO 数组,如果记录已经存在

php - 在 PHP 中回显嵌套数组中的值

javascript - PhantomJS 渲染截图比实际页面高很多

javascript - 在javascript中使用字符串访问变量

mysql - 如何使用 AND 过滤包含 IN 子句的多个列