0

我正在尝试根据上一个下拉列表中的选择从 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

和类别:ID、标题

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

4

1 回答 1

1

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

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

console.log(data.d);如果这不起作用,请尝试查看您返回的内容。

于 2013-11-11T21:41:36.827 回答