2016-10-10 9 views
0

こんにちはに基づいて異なるドロップダウンを移入ので、ここでは私の質問は、私はカテゴリとサブカテゴリを含むデータベースを持って、PHP、のonchange値

です。 2つのドロップダウンボックス(選択)があります。 PHP/MYSQLを使用することで、それらの両方に値を設定します。

マイカテゴリーが生成されています:

<select name="prod_cat"> 
    <?php 
     include("php/dbconnect.php"); 

     $sql = "SELECT * FROM categories"; 
     $result = mysqli_query($conn, $sql); 

     if (mysqli_num_rows($result) > 0){ 
      while ($row = mysqli_fetch_array($result)) 
      { 
      echo '<option value="'. $row["cat_name"] .'">'. $row["cat_name"] .'</option>'; 
      } 
     } 
     else{echo "No categories were found!";} 
     mysqli_close($conn); 
    ?> 
</select> 

browser preview of dropdown boxes

私はカテゴリが変更されたときのサブカテゴリロードします。 私のSQLは次のようになります:私はカテゴリがドロップダウンから値を取得し、変数として保存する必要が

SELECT subcat_name FROM subcategories WHERE cat_name = '$prod_cat' 

。過去に 私はJavaScriptで似た何かを行っている:

var subcat=document.forms["form"]['subcat'].value; 

、その後のonChange()を呼び出すことによって、別のドロップダウンリストの値を変更し、次のような機能があります。

document.getElementById('subcat').innerHTML='<option value=""></option>'; 

私は誰かが正しい方向に向けることを願っています! AJAX、JavaScriptを調べるべきか、それともすべてPHPで行うことができますか?

ありがとうございます。

+0

これはAJAXと組み合わせてjqueryを使用する必要があります。 PHPはサーバー側でJavaScriptとDropdownの選択はクライアント側であるため、何をしたいのですか?しかし、あなたはjQueryを使ってドロップダウンの "onChange"関数を実行し、AJAX上でPHPスクリプトを呼び出して要素を挿入することができます。お役に立てれば。 – KikiTheOne

答えて

0

このように、カテゴリ選択ボックスにIDを追加 - サブカテゴリ

<select name="prod_cat" id="prod_cat"> 
    <?php 
     include("php/dbconnect.php"); 

     $sql = "SELECT * FROM categories"; 
     $result = mysqli_query($conn, $sql); 

     if (mysqli_num_rows($result) > 0){ 
      while ($row = mysqli_fetch_array($result)) 
      { 
      echo '<option value="'. $row["cat_name"] .'">'. $row["cat_name"] .'</option>'; 
      } 
     } 
     else{echo "No categories were found!";} 
     mysqli_close($conn); 
    ?> 
</select> 

を -

<select id='sub_cat' name='sub_cat'></select> 

あなたのスクリプトを記述し、このような何か -

<script> 
$("#prod_cat").change(function(){ 
    //get category value 
    var cat_val = $("#prod_cat").val(); 
    // put your ajax url here to fetch subcategory 
    var url    = 'www.example/fetch_subcategory.php'; 
    // call subcategory ajax here 
    $.ajax({ 
        type:"POST", 
        url:url, 
        data:{ 
         cat_val : cat_val 
        }, 

        success:function(data) 
        { 
         $("#sub_cat").html(data); 
        } 
       }); 
}); 
</script> 

をAJAXのコードを追加します呼び出しページ - 'www.example/fetch_subcategory.php '

<?php 
$prod_cat = $_POST['cat_val']; 

$sql = "SELECT subcat_name FROM subcategories WHERE cat_name = '$prod_cat'"; 
     $result = mysqli_query($conn, $sql); 
$msg =''; 
     if (mysqli_num_rows($result) > 0){ 
      while ($row = mysqli_fetch_array($result)) 
      { 
      $msg =.'<option value="'. $row["sub_cat_name"] .'">'. $row["sub_cat_name"] .'</option>'; 
      } 
     } 
     else{$msg .="No categories were found!";} 
     echo $msg; 
     mysqli_close($conn); 

     ?> 

このようなことをして、うまくいくと思います。

+0

ありがとうございました。私は今あなたの方法を試している、それはまだ働いていないと私は理由を把握しようとしている。 AJAXライブラリをリンクする必要はありますか? –

+0

このコードを試しているうちにどのようなエラーが発生しましたか? –

関連する問題