2016-11-23 3 views
1

Я пытаюсь заполнить поле со списком в зависимости от другого.
Первый показывает мне все категории, а второй - все подкатегории, которые ему принадлежат.
Я видел, что есть два способа сделать это с помощью ajax и jquery, не могли бы вы мне помочь?Population combobox в зависимости от другого

$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

Вы должны использовать AJAX и PHP, чтобы сделать это.

<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> 
Смежные вопросы