javascript - 从 php 和 javascript 中的另一个下拉列表填充下拉列表

标签 javascript php jquery html mysql

我正在尝试使用一个下拉列表来填充另一个下拉列表。在第一个列表中,我选择一个 access_level,我想使用该值来填充具有与其关联的访问级别的所有可用cards。我可以生成访问级别列表;但是,第二个下拉列表从未填充。

这是 JavaScript 代码:

    <script>
    $(document).ready(function() {
         $("#access_level").on("change", function(){
            var accessLevel = document.getElementById("access_level").value;
            $.post('getcard.php', { access: accessLevel }, function(result) {
                $('#card').html(result);
            }
              );
             });
    }); 
    </script>

HTML 代码:

  <tr>
  <td align="right">Access Level:</td>
  <td><label>
  <select name='access_level' id='access_level'>
  <?if($accesslevel == 0){?>
  <option value='99' selected="selected" >No Access Selected</option>
  <? }else{ ?>
   <option value='<? echo $accesslevel;?>' selected="selected" ><? echo $accesslevel;?>  </option>
  <?}?>
  <? while ($row = $accesslevels->fetch_array()) {?>
    <option value='<? echo $row['access_level']?>'><? echo $row['access_level']; ?></option>
  <?}?>
  </select>
  </label></td>
  </tr>

  <tr>
  <td align="right">Availible Cards:</td>
  <td><label>
  <select name='card' id='card'>
  <?if($oldcardnum == "Empty"){?>
  <option value='99999999' selected="selected" >No Card</option>
  <? }else{ ?>
   <option value='<? echo $oldcardnum;?>' selected="selected" ><? echo $oldcardnum;?></option>
  <?}?>
  <option value='99999999'>No Card</option>

  <option value="empty">&nbsp;</option>
  </select>
  </label></td>
  </tr>

以及关联的 PHP 文件:

<?php
require_once "class/class.Database.php"; 
$db = new Database();
$db->connect();

if($_GET['access'])
{
    $access_level = $_REQUEST['access'];
$query = $db->mysqli->query("SELECT * FROM card_table WHERE access_level = '$access_level'");

while($row = $query->fetch_array()){ ?>
        <option value='<? echo $row['card_num']?>'><? echo $row['card_num']; ?></option>
<?}

}
?>

我尝试通过在 php 文件的开头放置一个简单的 echo 语句来进行一些调试,以查看它是否曾经进入过 if 语句,但没有任何结果曾经打印过。我猜 php 文件内的请求永远不会达到?为什么会发生这种情况以及如何解决它?

最佳答案

我想这就是你的问题

while($row = $query->fetch_array()){ ?>
    <option value='<? echo $row['card_num']?>'><? echo $row['card_num']; ?></option>

更改为

while($row = $query->fetch_array()){ ?>
    <option value='.$row['card_num'].'> .$row['card_num'] .</option>

您想要构建下拉列表而不是将其写出来。

关于javascript - 从 php 和 javascript 中的另一个下拉列表填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940528/

相关文章:

javascript - 如何使用 requirejs 优化目录中的所有 javascript 文件

javascript - CKEditor获取编辑器的内容

php - 是否有等效于 php 的 urldecode 或 html_entity_decode() 的 javascript?

jquery - dataType 与接受 - Ajax 请求

javascript - 使用 node-gd 对 png 缓冲区进行 Base64 编码

javascript - 如何解决文本字符串必须在嵌套 map 中的 <Text> 内呈现?

javascript - 如何将静态文本添加到输入值

javascript - 将网络请求从同步转换为异步(PHP/Javascript)

javascript - 动态创建 Angular View

javascript - 如何在给定 URL 的网站上提取最大的图像(按尺寸)?