Здравствуйте, есть список который заполняется из БД по выбору элемента из списка заполняется второй список элементами из бд, но проблема в том что когда выбираешь элемент ничего не происходит, после повторного выбора скрипт начинает работать, подскажите из-за чего так может быть сам скрипт Код (Javascript): function col(_this){ var _select = document.getElementById("content"); var kat = document.getElementById("kategory"); $('#kategory').change(function(){ $.ajax({ type: "POST", url: "show.php", data: "kategory="+$("#kategory").val(), success: function(html){ $("#content").html(html); } }); //return false; _select.style.display="inline"; }); } список HTML: <p> <select id="kategory" onChange="col(this)" required> <option disabled value="0">ВЫБЕРИТЕ КАТЕГОРИЮ</option> <? //Выводим категории и ее ID while ($row=mysql_fetch_array($result)) { print "<option value=".$row['id'].">"; print $row['kategory']; echo("</option>"); } ?> </select> </p> </div> <select required id="content" style="display: none;"> <option disabled value="0">ВЫБЕРИТЕ КУРС</option> </select> и обработчик PHP: <?php include "auth.php"; //Подключаем БД //делаем запрос на товары этой категории $query = "SELECT * FROM `spr_kurs` WHERE `idkat` ='".$_REQUEST['kategory']."'"; $result = mysql_query($query) or die(mysql_error()); // выводим товары полученные по запросу while ($row=mysql_fetch_array($result)) { print "<option value=".$row['id'].">"; print $row['kurs']; echo("</option>"); } ?>
оставляем только HTML: <select id="kategory" required> функцию выкидываем нафиг и оставляем так Код (Javascript): $('#kategory').change(function(){ $.ajax({ type: "POST", url: "show.php", data: "kategory="+$("#kategory").val(), success: function(html){ $("#content").show(); $("#content").html(html); } });
До кучи: 1) Автор, осваивайте отладку. 2) У вас запросы уязвимы к SQL-инъекциям. Нельзя напрямую использовать данные, полученные от клиента. 3) Расширение mysql_ устарело и удалено из свежих версий PHP. Используйте вместо него расширение mysqli_.
Будьте добры подскажите как сделать 3 и 4 уровня и тд. делаю третий список по аналогии не работает, ничего не отображается, запрос работает проверял, все тоже самое только название таблицы и полей другое а не работает, надо из второго списка выбрать пункт и третий заполняется данными из базы
так как у вас уже второй уровень генерируется динамически - нужно использовать .on Код (Javascript): $('#content').on("change",function(){
что-то не получается вот скрипт, что то они не хотят взаимодействовать Код (Javascript): $('#content').on("change",function(){ $.ajax({ type: "POST", url: "show1.php", data: "content="+$("#content").val(), success: function(html){ $("#pod").show(); $("#pod").html(html); } }); return false; }); вот пхп обработчик, запрос рабочий PHP: <?php include "auth.php"; //Подключаем БД //делаем запрос на товары этой категории $query = "SELECT * FROM `spr_podkat` WHERE `idkurs` =".$_REQUEST['content'].""; $result = mysql_query($query) or die(mysql_error()); // выводим товары полученные по запросу while ($row=mysql_fetch_array($result)) { print "<option value=".$row['id'].">"; print $row['podkat']; echo("</option>"); } ?> а вот элемент куда вставляю, и он пустой HTML: <select id="pod"> </select>
значит что-то неверно... почитайте про отладку посмотрите - идут и вообще запросы к вашему скрипту, если идут - то какой ответ получают