动态下拉与mysql问题


dynamic drop down with mysql issue

我试着用这段代码来获取MySQL数据库填充的下拉列表,如果选择了某个类别,就会弹出另一个下拉列表。我认为这个代码是正确的,但我想不是。第一个下拉列表甚至没有从数据库中填充,它只是变成了空白,=。我已经修改了很长一段时间,但没有成功。

以下是我试图复制的内容。。。http://www.blueicestudios.com/chained-select-boxes-using-php-mysql-ajax/

以下是迄今为止的情况。

主要形式:

<?php include ('connect.php'); ?>
<?php include('func.php'); ?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"><!--mce:0--></script>
<script type="text/javascript">
$(document).ready(function() {
    $('#wait_1').hide();
    $('#drop_1').change(function(){
      $('#wait_1').show();
      $('#result_1').hide();
      $.get("func.php", {
        func: "drop_1",
        drop_var: $('#drop_1').val()
      }, function(response){
        $('#result_1').fadeOut();
        setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
      });
        return false;
    });
});
function finishAjax(id, response) {
  $('#wait_1').hide();
  $('#'+id).html(unescape(response));
  $('#'+id).fadeIn();
}
</script>
<form action="" method="post">
<select id="drop_1" name="drop_1">
<option disabled="disabled" selected="selected"> Select Main Category</option>
</select>
<span id="wait_1" style="display: none;">
<img src="ajax-loader.gif" alt="Please Wait">
</span>
<span id="result_1" style="display: none;"></span>
</form>

这是func.php文件:

<?php 
function getTierOne()
{
    require_once('connect.php');
    $result = mysql_query("SELECT category FROM subcats")
    or die(mysql_error());
    while($tier = mysql_fetch_array( $result ))
    {
        $catitle = $tier['category'];
    echo "<option> $catitle </option>" ;
    }   
    mysql_close();
    }   
    if(isset($_GET['func'])&& $_GET['func'] == 'drop_1') {  
        drop_1($_GET['drop_var']);
        }
        function drop_1($drop_var)
        {
        require_once('connect.php');
        $result = mysql_query("SELECT * FROM subcats WHERE category='$drop_var'")
        or die(mysql_error());
        echo '
        <select id="subcat" name="subcat">
        <option disabled="disabled" selected="selected" value=" ">Choose one</option>
        <option value="'.$drop_2['subcat'].'">'.$drop_2['subcat'].'</option>
        </select>
        ';
        mysql_close();
        echo '
        <input name="submit" type="submit" value="Submit">';
        }
?>

您确定"$_GET['func']"有值吗?

代码是否已通过if(isset($_GET['func'])&& $_GET['func'] == 'drop_1')

有MySQL连接/查询问题吗?

到目前为止你尝试了什么?

$.get("func.php", {
    func: "drop_1",
    drop_var: $('#drop_1').val()
  }

func.php与您的html在同一目录中?firebug有什么错误吗?

如果有人想知道答案,我就想出来了。

改变这个。

{
        $catitle = $tier['category'];
    echo "<option> $catitle </option>" ;
    } 

到此

 while($tier = mysql_fetch_array( $catresult )) 
        {
           echo '<option value="'.$tier['category'].'">'.$tier['category'].'</option>';
        }