всем привет! нужна ваша помощь. мне нужно сделать зависимые списки. делаю по данному примеру. я сделал таким образом: Код (Text): <form action="" method="post"> <select name="model" onchange="loadCar(this)"> <option>Модель</option> <?php require_once('settings/ajax.php'); $models_db = mysqli_query($db,"SELECT * FROM `section`"); if (!$models_db) { echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>"; exit(mysqli_error()); } if (mysqli_num_rows($models_db) > 0){ $models_db_row = mysqli_fetch_array($models_db); do { echo '<option value="' . $models_db_row['title'] . '">' . $models_db_row['title'] . '</option>'; } while ($models_db_row = mysqli_fetch_array($models_db)); } ?> </select> <select name="series"> <option>Выберите модель</option> </select> <script> function loadCar(select){ var carSelect = $('select[name="series"]'); $.getJSON('settings/ajax.php', { action:'getModels', model:select.value }, function(seriesList){ carSelect.html(''); $.each(seriesList, function(i){ carSelect.append('<option value="' + i + '">' + this + '</option>'); }); }); } </script><input type="submit" value='OK'> </form> код AJAX ничего не изменял. потом массив для теста сделал таким: Код (Text): <?php $arModels = array( 'AC' => array( '1-series' => '1-series', '2-series' => '2-series', '3-series' => '3-series', '4-series' => '4-series', '5-series' => '5-series', ), ); ?> и все работает. если в данный момент я обращусь к AJAX то он мне выдаст такой ответ: Код (Text): {"1-series":"1-series","2-series":"2-series","3-series":"3-series","4-series":"4-series","5-series":"5-series"} формировать массив в ручную мне смысла нету, так как все данные лежат в базе. для того, чтобы вывести подобную строчку - Код (Text): {"1-series":"1-series","2-series":"2-series","3-series":"3-series","4-series":"4-series","5-series":"5-series"} я написал следующий код: Код (Text): <?php include('db.php'); $arModels = array(); if (isset($_GET['model'])) { $array_section_db = mysqli_query($db,"SELECT `category` FROM `category` WHERE `section`='".$_GET['model']."'"); if (!$array_section_db) { echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>"; exit(mysqli_error()); } if (mysqli_num_rows($array_section_db) > 0){ $array_section_db_row = mysqli_fetch_array($array_section_db); $massive = "{"; while ($array_section_db_row = mysqli_fetch_array($array_section_db)) { $massive .= '"'.$array_section_db_row['category'].'":"'.$array_section_db_row['category'].'",'; } $massive .= "}"; } } // отдаем результат echo $massive; ?> и он начал выводить следующий результат: Код (Text): {"AC 428":"AC 428","AC 428 Fastback":"AC 428 Fastback","AC Ace":"AC Ace","AC Ace II":"AC Ace II","AC Aceca":"AC Aceca","AC Cobra IV":"AC Cobra IV","AC Mamba":"AC Mamba","AC ME":"AC ME",}["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0440\u043a\u0443"] но данный код перестает работать. помогите решить пожалуйста.
Фиговый пример. Норм. вопрос сформулируй. --- Добавлено --- Выбранное значение из первого списка является ключом для создания (наполнения) второго – это элементарная логика. Ее нужно всего лишь реализовать вменяемым способом.
@kuzmich, выбирайте данные из таблицы моделей с фильтрацией по переданному ключу (даже числовой ключ можно предварительно проверить по таблице марок) и упаковывайте выборку в JSON. Как распарсить этот JSON на фронте и построить зависимый список, по ссылке в примере вроде показано.
А, сорри. Не обратил внимания, что раздел для «попрошаек». За $10 покажу, если надумаете перенести тему в др. раздел.