Показать сообщение отдельно
  #11 (permalink)  
Старый 23.07.2019, 14:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от laimas
помогите упростить код с помощь switch
Дайте спискам имена: marka_id, model_id и car_id, и единый какой либо класс. Делегируйте обработку списка ближайшему общему родителю на странице. А далее на клиенте:

$(селектор родителя).on('change', 'класс списков', function() {
     var src = $(this);
     $.post('php/search.php', this.name+'='+this.value, function(res) {
          //выполняем сценарий для src источника, строим список по json данным 
     }) 
})


на сервере:

//функции массива выполняют специфическое для каждого из ключей, то есть возвращают getModel($id) и т.п.
$src = [
    marka_id => function($id) {
         return ...
    },  
    model_id => function($id) {
         return ...
    }, 
    car_id => function($id) {
         return ...
    } 
];

if($key = key($_POST) AND array_key_exists ($key, $src)) {
     echo json_encode($src[$key]($_POST[$key])); //возвращаем клиенту json, то есть массивы возвращаемые методами getModel($id) и т.п. 
}

Последний раз редактировалось laimas, 23.07.2019 в 14:48.
Ответить с цитированием