基于先前选择的下拉列表根本没有填充

时间:2013-11-11 21:34:16

标签: javascript php jquery mysql drop-down-menu

我试图根据前一个下拉列表中的选择从mysql表中填写一个下拉列表。

我已经看过许多问题,询问如何做到这一点,然后想出了以下内容,但是当我从第一次选择内容时,我的第二次下拉菜单没有发生任何事情。

我有newStock.php,头上有以下脚本。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>
<script type="text/javascript">
                $(function(){                    
            $('#field').change(function(){ //on change event
            var fieldVal = $('#field').val(); //<----- get the value from the parent select
            $.ajax({
                url     : 'process.php', //the url you are sending datas to which will again send the result
                type    : 'GET', //type of request, GET or POST
                data    : { fieldValue: fieldVal}, //Data you are sending
                success : function(data){$('#field2').html(data)}, // On success, it will populate the 2nd select
                error   : function(){alert('an error has occured')} //error message
            })
        })

        })
</script>

在身体中创建了两个下拉菜单:

<?php
 connect('final');//connect to DB
 $sql = mysql_query("SELECT * FROM stockcata");
     while ($row = mysql_fetch_array($sql)){
             echo '<option value='.$row['id'].'>' .$row['Catagory']. '</option>';
      }
 ?>
 </Select>  </label> 

 <input type="text" name="addCatagory" />

 <label><span>Section</span> 
 <Select name="field2" id="field2">

 </Select>  </label> 

以下process.php用于查询我的数据库并提供填写第二个下拉列表的选项

<?php
require("header.php");
connect('final');

$temp = $_GET['fieldValue'];
$result = mysql_query("SELECT * FROM stocksection WHERE cataID = '$temp'");
 while ($row = mysql_fetch_array($result)){
 echo '<option value='.$row['id'].'>' .$row['section']. '</option>';
 }
 ?>

在第二次下拉列表中没有任何事情发生,我不知道为什么。

编辑.........

我试图进一步调试它。我的数据库设置有2个表; 部分:ID,标题,Catagory_ID

和Catagory:ID,Title

当它查询section表时,它只返回Catagory_ID为0的数据,无论我从下拉列表中选择了什么选项

1 个答案:

答案 0 :(得分:1)

你的ajax调用成功的data不是你认为的字符串。你可能想要这样的东西:

success : function(data){$('#field2').html(data.d)}, // On success,

如果不能查看您要返回的内容,请尝试console.log(data.d);