我正在尝试根据先前下拉列表中的选择来填充 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 的数据
最佳答案
ajax调用成功时的data
并不是你想象的字符串。您可能想要这样的东西:
success : function(data){$('#field2').html(data.d)}, // On success,
如果这不起作用,请尝试使用 console.log(data.d);
来查看您返回的内容。
关于javascript - 基于先前选择的下拉列表根本不填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19916407/