【问题标题】:Why is my dynamic dropdown list not working?为什么我的动态下拉列表不起作用?
【发布时间】:2016-04-22 15:15:21
【问题描述】:

下拉列表假设从另一个表的列中获取记录,但当前没有记录出现。另外,如果用户在列表中找不到他们想要的内容,我需要在下拉列表中显示“其他”选项,以便用户键入。 这是我的代码:

<script type="text/javascript">
    function showfield(name){
    if(name=='Other')document.getElementById('div1').innerHTML='Please Specify: <input type="text" name="other" />';
    else document.getElementById('div1').innerHTML='';
    }
    </script>   
<label for="issue_type">Issue Type</label>
<?php 
include ("../db/dbConn.php"); 
$sql = "SELECT issue_type FROM issue where deleted =0"; 
$result=mysql_query($sql);
echo '<select class ="form-control" type="text" name="issue_type" id="issue_type" onchange="showfield(this.options[this.selectedIndex].value)" >';
 while ($row = mysql_fetch_array($result)) 
{ 
 echo "<option value='".$row['issue_type']."'>".$row['issue_type']."      </option>"; 
    } 
   echo "</select>";

?>
<div id="div1"></div>

【问题讨论】:

  • 您能否检查查询以直接在 mysql 上触发是否返回任何结果。对于 other 的附加选项,您可以在 while 循环外使用
  • 嗨,您的意思是我应该尝试在 mysql 中输入“SELECT issue_type FROM issue where deleted = 0”吗?如果是这种情况,我已经尝试过了,它返回了我想要的结果。但下拉列表不获取这些记录.....请帮助..
  • 你能在脚本中检查“echo mysql_num_rows($result)”它返回的内容吗?
  • 仍然没有...记录仍然没有出现在下拉列表中...您知道为什么吗?

标签: javascript php mysql dynamic dropdown


【解决方案1】:

将 html 部分分配给变量,然后回显它。试试

<script type="text/javascript">
function showfield(name){
if(name=='Other')document.getElementById('div1').innerHTML='Please Specify: <input type="text" name="other" />';
else document.getElementById('div1').innerHTML='';
}
</script>   
<label for="issue_type">Issue Type</label>
<?php 
include ("../db/dbConn.php"); 
$sql = "SELECT issue_type FROM issue where deleted =0"; 
$result=mysql_query($sql);

$htm = '';
$htm .='<select class ="form-control" type="text" name="issue_type" id="issue_type" onchange="showfield(this.options[this.selectedIndex].value)" >';
while ($row = mysql_fetch_array($result)) 
{ 
$htm .="<option value='".$row['issue_type']."'>".$row['issue_type']."      </option>"; 
} 
$htm .= "<option value='Other'>Other</option>"; // add other option
$htm .="</select>";
echo $htm;
?>
<div id="div1"></div>

【讨论】:

  • 您好,我已经尝试使用您的代码,但仍然无法正常工作。下拉列表中的唯一选项是“其他”...
  • 您确定 $result 不为空并且包含密钥 issue_type 吗?你试过 print_r($result) 吗?
  • 嗨对不起,你能指导我如何检查吗?因为我的 $sql 语句没有错误......
  • 在 while 循环之前尝试 echo '&lt;pre /&gt;';print_r(mysql_fetch_array($result,TRUE)); die; 并检查是否有 issue_type 字段。
  • 嗨,我试过了,但它似乎不起作用。我无法选择下拉菜单,我的其他字段都消失了!请帮忙:(
猜你喜欢
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多