【问题标题】:Create a dynamic dropdown with mysqli based创建一个基于 mysqli 的动态下拉列表
【发布时间】:2015-02-17 13:18:11
【问题描述】:

我正在尝试开发一个 JS 函数,该函数会根据先前下拉列表中的选择创建一个新的下拉列表。基本上是一个下拉菜单,用于根据州的选择来选择城市列表。有人有什么建议吗?

这是我正在使用的 javascript:

function city() {
var opt = document.getElementById('State');
var sel = opt.options[opt.selectedIndex].value;
var dropdown = document.getElementById('City');
document.write("<?php mysqli_select_db($GLOBALS['SSDN'],$database_SSDN);     $query_City = 'SELECT * FROM city WHERE State = sel ORDER BY City ASC'; $City = mysqli_query($GLOBALS['SSDN'],$query_City) or die(mysql_error()); while ($row_City = mysqli_fetch_array($City, MYSQL_ASSOC)) ?>");

var o = document.createElement('option');
o.text = document.write("<?php echo $row_City['City'];?>");
o.value = document.write("<?php echo $row_City['City'];?>");
dropdown.options.add(o);
}

这里是html:

       <td><select name="State" class="Field" id="State">
      <?php
      while ($row_Recordset1 = mysqli_fetch_array($Recordset1, MYSQL_ASSOC)) {
          ?>
          <option value = "<?php echo $row_Recordset1['State'];?>"><?php echo $row_Recordset1['State'];?></option>
          <?php
      }
      ?>
    </select></td>
  </tr>
  <tr height="50">
    <td><div align="right" class="Label">Select New Rehbar City :</div></td>
    <td>&nbsp;</td>
    <td><select name="City" class="Field" id="City" onfocus="City();">

    </select></td>
  </tr>

【问题讨论】:

  • 究竟是什么不起作用?
  • 我用 AngularJS 做了类似的事情。它的双重数据绑定功能很方便,但学习和设置需要大量工作……请参阅他们的介绍教程以了解它如何提供帮助。

标签: javascript php ajax drop-down-menu mysqli


【解决方案1】:

我还记得 2011 年的这个:http://tutorialzine.com/2011/11/chained-ajax-selects-jquery/

它被称为链式选择框。上面的链接提供了有关如何实现它的教程。看看它,也许它会对你有所帮助。

【讨论】:

    【解决方案2】:

    Javascript 是一种客户端脚本(编程)语言,而 PHP 是一种服务器端编程语言,这意味着当页面已经刷新到客户端浏览器时,您不能运行 PHP 代码,而您只能在页面被刷新时运行 Javascript 代码已经加载了!

    这些行没有任何意义,不会给你想要的结果:

    document.write("<?php mysqli_select_db($GLOBALS['SSDN'],$database_SSDN);     $query_City = 'SELECT * FROM city WHERE State = sel ORDER BY City ASC'; $City = mysqli_query($GLOBALS['SSDN'],$query_City) or die(mysql_error()); while ($row_City = mysqli_fetch_array($City, MYSQL_ASSOC)) ?>");
    o.text = document.write("<?php echo $row_City['City'];?>");
    o.value = document.write("<?php echo $row_City['City'];?>");
    

    将您的选项(数据)放在一个 javascript 变量中,然后在您的脚本中使用它们,如下所示:

    <script>
    var myOptions = [
        <?php
        // Select and fetch the data from database
        // Loop over your selected data and flush them into your javascript array
        while ($row_City = mysqli_fetch_array($City, MYSQL_ASSOC)){
            // if still have data:
            ?>'<?php echo $row_City["field_name"] ?>',<?php
            // else:
            ?>'<?php echo $row_City["field_name"] ?>'<?php
        }
        ?>
    ];
    
    for (option in myOptions){
        // add each option to your drop down element
    }
    
    </script>
    

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多