php - 如何将 JavaScript 结果转换为显示下拉列表 <option val ="value">Text</option>

标签 php mysql

下面是下拉列表的代码。第二个下拉结果根据第一个下拉选择进行填充。使用此代码一切正常。

但问题是它在第二个下拉列表中将 hospital_id 显示为文本和值。我想将该值保留为 hospital_id,但如何将文本更改为 hospital_name(这是表 mfb_hospital 中的另一列)。

我的代码:

<?php
  $db = new mysqli('localhost','root','redhat','echodeve_mfb_temp');//set your database handler
  $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);


?>

<!docytpe html>
<html>

  <head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
    <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>
<script>
  $(function() {
    $( "#from" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 3,
        dateFormat: "yy-mm-dd",
      onClose: function( selectedDate ) {
        $( "#to" ).datepicker( "option", "minDate", selectedDate );
      }
    });
    $( "#to" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 3,
        dateFormat: "yy-mm-dd",
      onClose: function( selectedDate ) {
        $( "#from" ).datepicker( "option", "maxDate", selectedDate );
      }
    });
  });
  </script>
</head>

  <body onload='loadCategories()'>
   <form id="reportvalue" action="backend.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>
  </body>
</html>

最佳答案

我建议您使用 .append 函数,一个简单的示例代码如下:

        $.each(json, function(){

        $('#subcatsSelect').append("<option value='"+json.id+"'>"+json.name+"</option>");
    });

请注意:

$.each(json, function() is just a sample for your action to populate the second select options.

关于php - 如何将 JavaScript 结果转换为显示下拉列表 <option val ="value">Text</option>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875720/

相关文章:

php - 在 WordPress 中从我的数据库检索数据时出现问题

php - Phalcon PHP 密码 Bcrypt

mysql - 组函数与 AVG 函数的使用无效

mysql - Ruby on Rails - 总和计算不适用于模型中的关联

php - 如何正确地将变量插入为生成的 JavaScript 值的值?

php - 使用 Laravel 基于 SAML 的单点登录

MYSQL密码问题

php - 如何使用mysql在php代码中获取主键错误?

php - unserialize() ...函数 spl_autoload_call() 尚未定义调用它的类

php - MySQL 查询结果顺序不正确