0

データベースからデータをプルしてカテゴリコンボボックスにデータを入力し、カテゴリコンボボックスのオプションを選択するとサブカテゴリコンボボックスにデータを入力する連鎖選択ドロップダウンに取り組んでいます。カテゴリドロップダウンボックスは問題なくデータベースからデータをプルしますが、サブカテゴリコンボボックスがカテゴリコンボボックスで選択されたオプションの「id」に基づいてデータベースからデータを選択するのに問題があります。ヘルプpls?以下は私の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 ステートメントをページに出力するようにします。

次に、その正確なステートメントを (コマンド ラインまたは phpmyadmin を介して) MySQL にフィードし、必要な結果が得られるかどうかを確認できます。もしそうなら、問題は後で起こります。何が見えますか?

以前のポスターに同意します - $_POST ID が設定されていない場合は、「」で埋めますか? それではおそらく結果が出ません。

最後の注意: $_POST または $_GET 変数に触れる前に、少なくともmysql_real_escape_string()を使用してください。そうしないと、サイトを多数の SQL インジェクション攻撃にさらすことになります。

于 2012-10-09T16:51:57.407 に答える