我试图根据前一个下拉列表中的选择从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的数据,无论我从下拉列表中选择了什么选项
答案 0 :(得分:1)
你的ajax调用成功的data
不是你认为的字符串。你可能想要这样的东西:
success : function(data){$('#field2').html(data.d)}, // On success,
如果不能查看您要返回的内容,请尝试console.log(data.d);
。