Добрый день!
В базе хранятся категории и подкатегории. У меня на форме есть два select, при выборе категории в первом необходимо заполнить второй соответствующими подкатегориями без перезагрузки страницы.
Ajax только недавно начал изучать, нашел похожий пример - вот html
<div class="form-group">
<label class="col-md-2 control-label">Категория:</label>
<div class="col-md-10">
<select onchange="javascript:selectCategory();" name="category_id" id="category_id" class="form-control">
<?php if (is_array($categoriesList)): ?>
<?php foreach ($categoriesList as $category): ?>
<option value="<?php echo $category['id']; ?>"> <?php echo $category['name']; ?></option>
<?php endforeach; ?>
<?php endif; ?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Подкатегория: </label>
<div name="selectCategory" class="col-md-10">
</div>
</div>
При выборе категории срабатывает скрипт
function selectCategory(){
var category_id = $('select[name="category_id"]').val();
if(!category_id){
$('div[name="selectCategory"]').html('');
}else{
$.ajax({
type: "POST",
url: "/ajax.base.php",
data: { action: 'showRegionForInsert', category_id: category_id },
cache: false,
success: function(responce){ $('div[name="selectCategory"]').html(responce); }
});
};
};
Он вызывает вот этот файл
switch ($_POST['action']){
case "showRegionForInsert":
echo '<select name="pod_category_id" id="pod_category_id" class="form-control">';
$ListPodCategories = Category::PodCategoriesListAll($_POST['$category_id']);
foreach ($ListPodCategories as $listCateg) {
echo '<option value="'.$listCateg['id'].'">'.$listCateg['name'].'</option>';
};
echo '</select>';
break;
};
Select вроде начал появляться, но он пустой. Запрос для подкатегорий в других местах работает, так что проблема не в нем. Помогите, пожалуйста.