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

时间:2014-04-08 14:46:37

标签: 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文件中的请求?为什么会发生这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:0)

我认为这是你的问题

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>

你想构建你的下拉列表而不是把它写出来。

答案 1 :(得分:0)

您正在使用$ _GET ['access']从脚本中检索您的信息。但是在脚本中你使用的是Jquery的POST函数,我应该在你的PHP脚本中使用$ _POST ['access']。