Вывод значения из бд на основании другого значения

225
29 сентября 2018, 22:20

Есть фильтр сортировка по марке и моделе авто, содержащий 3 пункта этапа, 1: Выбор марки авто 2: Выбор модели исходя из выбранной марки авто 3: Подбор(редирект на url конкретной марки) Первые 2 этапа выполнил, теперь нужно сделать так чтобы при выборе модели авто(этап2) подгружались значение url этой моделе. Архитектура таблицы id|marka|model|url (у каждой моделе свой url) надо сделать чтобы при выборе конкретной модели был переброс на ее url.

       <select class="filtr__select" id="idcat2">
                        <option id="model-avto">модель</option>
                    </select>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
                    <script type="text/javascript">
                            $('#idcat').change(function(){
                                var val = $(this).val();
                                $('#idcat2').html('');
                                $.ajax({
                                type: 'POST',
                                url: 'templates/megawebshop/html/com_virtuemart/category/show.php',
                                data: {'model': val},
                                success: function(data) {
                                    var obj = JSON.parse(data);
                                    obj.forEach(function(item) {
                                        $('#idcat2').append($("<option></option>").attr("value",item).text(item));
                                    })
                                }
                                });
                            });
                             $('#idcat2').change(function(){
                                var val = $(this).val();
                                 $.ajax({
                                    type: 'POST',
                                    url: 'templates/megawebshop/html/com_virtuemart/category/show2.php',
                                    data: {'url': val},
                                    success: function(data) {
                                        var obj = JSON.parse(data);
                                        obj.forEach(function(item) {
                                            $('#redirect').attr("href",item).text(item);
                                        })
                                    }
                                });
                            }); 
                             $('#redirect')
                    </script>
                    <a id="redirect" href="" type="submit" name="submit" value="Кнопка" >Подобрать</a>

файл show2.php

   $URL = $_POST['url'];

   if (isset($URL) && !empty($URL)) {
    $query = "SELECT url FROM filtr_db WHERE model='$URL'";
    $DB = mysql_query($query);
   //  Обработаем
    $JSON = array();
    while ($row = mysql_fetch_assoc($DB)) {
    $JSON[] = $row['url'];
    }
   //  Выводим
   echo json_encode($JSON);
   } else {
     echo '[]';
   };
Answer 1
success: function(data) {
    $('#redirect').attr("href",data);
}

Далее:

echo json_encode($JSON);

Переделать в:

echo $JSON;
$JSON[] = $row['url'];

Переделать в:

$JSON = $row['url'];
READ ALSO
Зависают php процессы

Зависают php процессы

Есть скрипт который поднимает по 5 параллельных процессов в секунду, каждый процесс шлет запрос на апи, после получения ответа умирает и поднимаются...

218