0

I'm working on a chained select drop down that pulls data from the database to populate the category combobox while the subcategory combo box populates when an option from the category combobox is selected. 类别下拉框从数据库中提取数据没有任何问题,但是我无法根据类别组合框中选择的选项的“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代码

 <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>
4

1 回答 1

2

尝试缩小可能是问题的范围。当您进行选择时,让 PHP 将 SQL 语句打印到页面上。

然后,您可以将确切的语句输入 MySQL(通过命令行或通过 phpmyadmin),看看是否得到了您想要的结果。如果你这样做了,那么问题就在后面。你看到了什么?

我会同意之前的海报 - 如果 $_POST id 没有设置,你用“”填充它吗?那可能不会有任何结果。

最后一点:至少在你接触任何 $_POST 或 $_GET 变量之前使用mysql_real_escape_string() 。否则,您将打开您的站点以应对许多 SQL 注入攻击。

于 2012-10-09T16:51:57.407 回答