в ajax.base.php
не нужно возвращать html, нужно вернуть в ответ в формате json
foreach ($ListPodCategories as $listCateg) {
echo '<option value="'.$listCateg['id'].'">'.$listCateg['name'].'</option>';
};
Переделать в
$result = ['data'];
foreach ($ListPodCategories as $listCateg) {
$result['data'][] = [
'id' => $listCateg['id'],
'name' => $listCateg['name']
];
}
и ответ возвращаешь в json
echo json_encode($result);
на js делаешь
не
$('div[name="selectCategory"]').html(responce);
а примерно так:
Если IE8 не нужен, то
$('div[name="selectCategory"]').empty();
$.each(response.data, function(key, value) {
$('div[name="selectCategory"]').append(new Option(value.name, value.key));
}
Если нужен, то примерно так:
$('div[name="selectCategory"]').empty();
$.each(response.data, function(key, value) {
$('#mySelect')
.append($("<option></option>")
.attr("value", value.id)
.text(value.name));
});