2016-07-13 9 views
0

Я работаю над зависимой формой ящиков, используя PHP в качестве серверного языка и JQuery с Ajax. У меня возникла проблема с получением текста ответа, поскольку он не отображается как параметры во втором поле выбора.Динамически зависимые поля выбора (PHP + JQuery + AJAX)

P.S. Я новичок в Ajax, и нет видео, которое может помочь мне с моей проблемой.

HTML & PHP:

<center><form method="post" action="php/functions.php" id="catForm"> 
<select name="catSelect" class="catSelect" name="category"> 
<option value='null' default>اختر الفئة:</option> 
<?php 
     $selectCategories = mysqli_query($connectionDB, "SELECT * FROM categories"); 

     while($categoriesDisplay = mysqli_fetch_array($selectCategories)){ 
    echo '<option value="'.$categoriesDisplay['id'].'">'.$categoriesDisplay['category'].'</option>'; 
     } 
?> 
</select><br/><br/> 

<select name="subCatSelect" class="subCatSelect"> 
<option value="null" default>اختر النوع:</option> 
<?php 
$catSelectVal = $_POST['catSelect']; 
$selectSubCat = mysqli_query($connectionDB, "SELECT * FROM sub_categories WHERE id LIKE '$catSelectVal'"); 

while($subCatDisplay = mysqli_fetch_array($selectSubCat)){ 
    echo '<option value="'.$subCatDisplay['id'].'">'.$subCatDisplay['subCategory'].'</option>'; 
} 

?> 
</select><br/> 
<h1></h1> 
<input type="submit" value="اختر" class="submitForm" /><br/> 
</form></center> 

Jquery код:

$(document).ready(function(){ 
    $('.catSelect').change(function(){ 
     var changeURL = $('#catForm').attr("action"); 
     var data = $('.catSelect').val(); 
     $.post(changeURL, {category : data}, function(subCategory){ 
      $('.subCatSelect').append(subCategory); 
     }); 
    }); 
}); 

Кода, который должен работать на получение параметров для второго окна выбора:

$catSelectVal = $_POST['catSelect']; 
$selectSubCat = mysqli_query($connectionDB, "SELECT * FROM sub_categories WHERE id LIKE '$catSelectVal'"); 

while($subCatDisplay = mysqli_fetch_array($selectSubCat)){ 
    echo '<option value="'.$subCatDisplay['id'].'">'.$subCatDisplay['subCategory'].'</option>'; 
} 
+0

Проводилась ли какая-либо отладка с помощью отладчика js браузера. В частности, это строка 'var data = $ ('. CatSelect'). Val();' – RiggsFolly

+0

Также 'print_r ($ _ POST);' в скрипте PHP, вероятно, идентифицирует другую ошибку – RiggsFolly

+0

Это поможет вам: http: // stackoverflow .com/questions/2780566/get-selected-value-of-a-dropdowns-item-using-jquery – RiggsFolly

ответ

0

Я мог бы быть неправильно, но я не думаю, что вы отправили 'catSelect' в запрос ajax .. скорее, Отправили category с data является значением из 'catSelect'

Так что, когда вы смотрите на $catSelectVal = $_POST['catSelect']; там не будет ничего найти.

Попробуйте вместо этого: $catSelectVal = $_POST['category'];

Как @RiggsFolly упоминалось выше, если вы print_r($_POST); вы будете мгновенно увидеть, если это так или нет.

+0

Я сделал это, теперь он работает; однако мои результаты дублируются как таковая «категория» -> «подкатегория1, подкатегория2, подкатегория1, подкатегория2« – Khalid

+0

Я пытаюсь обойти это, просмотрел несколько видеороликов и посмотрел на некоторые коды. но ничего не помогает. – Khalid

+0

Я не уверен на 100%, что вы имеете в виду здесь, но если предположить, что это проблема с ключами, возможно, попробуйте 'mysqli_fetch_assoc' вместо' mysqli_fetch_array'? –

Смежные вопросы