php - 如何使用 Javascript 在下拉列表中显示选项名称

标签 php mysql

我有两个下拉菜单,其中的值是从 MySQL 填充的。第二个下拉值取决于第一个下拉选项。

无论如何,代码是有效的。现在使用我的代码将 hospital_id 发布到另一个 php。但我也想在下拉列表中显示医院名称作为文本,但截至目前我只能显示医院 ID。

请看下面的代码并给我一个解决方案:

$query = "SELECT bp_id,bp_name FROM mfb_billing";
  $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $categories[] = array("bp_id" => $row['bp_id'], "val" => $row['bp_name']);
  }

  $query = "SELECT bp_id, hospital_id, hospital_name FROM mfb_hospital";
  $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $subcats[$row['bp_id']][] = array("bp_id" => $row['bp_id'], "val" => $row['hospital_id']);
  }

  $jsonCats = json_encode($categories);
  $jsonSubCats = json_encode($subcats);

这是脚本:

<script type='text/javascript'>
      <?php
        echo "var categories = $jsonCats; \n";
        echo "var subcats = $jsonSubCats; \n";
      ?>
      function loadCategories(){
        var select = document.getElementById("categoriesSelect");
        select.onchange = updateSubCats;
        for(var i = 1; i < categories.length; i++){
          select.options[i] = new Option(categories[i].val,categories[i].bp_id);          
        }
      }
      function updateSubCats(){
        var catSelect = this;
        var catid = this.value;
        var subcatSelect = document.getElementById("subcatsSelect");
        subcatSelect.options.length = 0; //delete all options if any present
        for(var i = 0; i < subcats[catid].length; i++){
          subcatSelect.options[i] = new Option(subcats[catid][i].val,subcats[catid][i].hosp);
        }
      }
    </script>

这是我的表格:

<body onload='loadCategories()'>
   <form id="reportvalue" action="testpj2.php" method="post">

    <select id='categoriesSelect'>
        <option value="1">Select Billing Provider</option>
    </select>

    <select name='hospitalname[]' id='subcatsSelect' multiple='multiple'>
        <option value="all">Select Billing Provider</option>
    </select>
<label for="from">From</label>
<input type="text" id="from" name="from">
<label for="to">to</label>
<input type="text" id="to" name="to">
<?php
//$a = $_REQUEST['hospitalname[]'];
//echo $a;
?>
   <input type="submit" name="Submit" value="Submit">
  </form>

最佳答案

HTML

 <select id="someId"></select>

Javascript

 document.getElementById('someId').innerHTML="
 <option value='value1'>"+option1+"</option>
 <option value='value2'>"+option2+"</option>
 <option value='value3'>"+option3+"</option>";

更新:

对于来自 SQL 查询的动态数据,

尝试在查询执行后放置这些代码。将 $row['value'] 和 $row['option'] 替换为受尊重的动态值。

 echo"<script type='text/javascript'> var str = '' </script>";
 while($row = $result->fetch_assoc())
 {
     echo"<script type='text/javascript'>
    str = str + '<option value='+".$row['value']."+'>'+".$row['option']."+'</option>   
    </script>";
 }
 echo"<script type='text/javascript'>
     document.getElementById('someId').innerHTML = str
    </script>";

关于php - 如何使用 Javascript 在下拉列表中显示选项名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816107/

相关文章:

sql - DBMS查询日志,可能吗?

mysql - 通过 node.js 向 mysql 中插入多行

javascript - jquery 输入字段更改 wordpress 中的所有 php 循环项值

php - array_diff() 删除了太多元素

php - Urban Airship 推送 : Response: Got negative response from server: 0

javascript - 如何在 WordPress 中实现 AJAX 评论

php - 使用 sql-query 将 html 转换为 php

php - 如何将实体管理器传递给 Symfony 中的嵌入表单?

javascript - $_GET 停止用于删除记录

Java 硬编码 SQL 查询有效,但从文件缓冲区读取的完全相同的查询失败