2016-11-23 112 views
1

別のコンボボックスに応じてコンボボックスを設定しようとしています。
最初のカテゴリはすべてのカテゴリを表示し、2番目のカテゴリはそれに属するすべてのサブカテゴリを表示します。
私はajaxとjqueryでそれを行う2つの方法があることを見てきました、あなたは私を助けてくださいできますか?あなたがこれを行うにはAJAXとPHPを使用する必要があります他のものに応じてコンボボックスを設定する

$sqlCmd ="SELECT DISTINCT categories.categoryID, categories.categoryName 
     FROM categories 
     JOIN subcategories 
     ON subcategories.categoryID=categories.categoryID 
     JOIN languages 
     ON categories.languageID = languages.languageID 
     WHERE languages.languageID =:lang; 
     "; 
$prepQuery = $conn ->prepare($sqlCmd); 
$prepQuery->bindParam(":lang",$langid, PDO::PARAM_INT); 
$prepQuery->execute(); 
$resultLang= $prepQuery->fetchAll(); 

SELECT subcategories.subCatID,subcategories.subCatName, categories.categoryID 
FROM subcategories 
JOIN categories 
ON subcategories.categoryID=categories.categoryID 
JOIN languages 
ON categories.languageID = languages.languageID 
WHERE languages.languageID =1 
AND categories.categoryID=1; 


<select name="comboCategories" onchange ='<?php echo "window.location.href='#postanAd.php?comboCategories='"?>'> 
     <?php 
     //$counter=0; 
     foreach ($resultLang as $oneRec) 
     { 
    echo"<option value=".$oneRec["categoryID"].">".$oneRec["categoryName"]."</option>";    
     } 
     ?> 
    </select>      

    <div class="form-group"> 
     <div class="input-icon">    
      <a> Select a subcategory </a> 
       <!-- COMBOBOX ALL SUBCATEGORIES !--> 
     </div> 
    </div> 
+0

あなたは多くのカテゴリを持っていない場合は、すべてのサブカテゴリを生成し、それらを( '表示:なしを;')非表示にすることができ、その後のJavaScript(のEventListener)を使用すると、選択したカテゴリのサブカテゴリを示しました。それ以外の理由でサーバーからサブカテゴリを取得する場合は、 https://developer.mozilla.org/en-US/docs/AJAXを参照してください。コードにJavaScriptが表示されません。あなたは何か試しましたか? –

+0

私はそれを試しましたが、それは機能していないので削除しました。私は提案されたようにeventlistenerを使用してみます – NewPassionnate

答えて

0

<script> 
    $(document).ready(function() { 
    $('select[name="comboCategories"]').on("change", function() { 
     var selectVal = $('this').val(); 

     $.ajax({          
      url: 'postanAd.php',       
      data: "comboCategories="+selectVal,              
      type:'post', 
      //dataType: 'json',     
      success: function(data) { 
       for (var i in data) { 
       $('select[name="subcategories"]').append('<option value="">'+data[i]+'</option>'); 
       } 
      } 
     }); 
    }); 
    }); 
</script> 
関連する問題