我正在处理一个链式选择下拉列表,它从数据库中提取数据以填充类别组合框,同时当选择类别组合框中的选项时,子类别组合框将填充。类别下拉框从数据库中提取数据没有任何问题但是我遇到了使用子类组件框根据类别组合框中选择的选项的“id”从数据库中选择数据的问题。下面的任何帮助请参阅下面的我的PHP代码以及显示数据的jquery代码
<?php
include ('../storescripts/connection.php');
function ShowCategory(){
$sql = "SELECT * FROM category";
$res = mysql_query($sql) or die(mysql_error());
$category = '<option value="0">Choose...</option>';
while($row = mysql_fetch_array($res))
{
$category .= '<option value = "'.$row['category_id'].'"> '.$row['category_name']. ' </option>';
}
return $category;
}
function ShowSubCategory(){
if (!isset($_POST['id']))
{
//If not isset -> set with dumy value
$_POST['id'] = "";
}
$sql1 = "SELECT * FROM subcategory WHERE category_id = '$_POST[id]'";
$res1 = mysql_query($sql1) or die(mysql_error());
$subcategory = '<option value="0"> Choose...</option>';
while($row = mysql_fetch_array($res1)){
$subcategory .= '<option value="'.$row['subcategory_id'].'"> '.$row['subcategory_name'].' </option>';
}
return $subcategory;
}
?>
// jquery code
<script type="text/javascript">
$(document).ready(function() {
$("select#category").change(function(){
var id = $("select#category option:selected").attr('value');
$.post("select_subcat.php", {id:id}, function(data){
$("select#subcategory").html(data);
});
});
});
</script>
答案 0 :(得分:2)
尝试缩小可能出现的问题。在进行选择时,让PHP将SQL语句打印到页面。
然后你可以将这个确切的语句提供给MySQL(通过命令行或通过phpmyadmin),看看你是否得到了你想要的结果。如果你这样做,那么问题就在后面。你看到了什么?
我同意早期的海报 - 如果没有设置$ _POST ID,你用“”填充它?这可能不会得到任何结果。
最后一点:在您触摸任何$ _POST或$ _GET变量之前至少使用mysql_real_escape_string()。您正在打开您的站点,否则会进行多次SQL注入攻击。