Intereting Posts
Задайте расположение файла конфигурации по умолчанию php-fpm Почему я получаю сообщение об ошибке «не удалось открыть поток» при отправке данных из контактной формы? Как предотвратить одновременные логины пользователей на сайте PHP / MySQL? Как вставить теги ссылок между тегами заголовка в HTML с помощью SimpleHtmlDom PDO json вставляет несколько тегов Результаты печати curl_exec, когда я не хочу как кодировать несколько строк из mysql в json, используя php Принимать куки, используя cURL? Стандарты Strct: только переменные должны передаваться по ссылке Чтение RAW-данных из запроса Flash POST (изображения) Запретить выполнение контроллером таблица обновляет пустое пространство, когда пользователь ничего не вводит в текстовое поле Google API API API: ошибка сертификата CA Экспортировать только одну запись Заголовки, а не данные (laravel 5.3) Проблема выбора кометного сервера

Использование PHP и MySQL для заполнения раскрывающегося списка

Я пытаюсь заполнить второй раскрывающийся список, используя значение, выбранное из первого раскрывающегося списка с использованием PHP и MysSQL, и без обновления страницы. Я думал, что это будет просто, но не может заставить его работать, поэтому любая помощь будет высоко оценена.

Пока у меня есть следующее:

Форма HTML (form.php)

<select name="list1" id="list1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="list2" id="list2"> </select> 

JavaScript (в пределах form.php)

 <script type="text/javascript"> $("#list1").change(function() { $("#list2").load("get_list2.php?id=" + $("#list1").val()); }); </script> 

get_list2.php

 require_once("config.php"); $q1 = mysql_query("SELECT * FROM mytable WHERE id = '$_GET[id]'"); while($row1 = mysql_fetch_assoc($q1)){ echo "<option>".$row1['item']."</option>"; } 

Благодаря!

Solutions Collecting From Web of "Использование PHP и MySQL для заполнения раскрывающегося списка"

Как и другие участники, вы должны использовать PDO (с подготовленными операторами) вместо mysql_.

Одна возможная реализация:

HTML (form.php)

 <select name="list1" id="list1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="list2" id="list2"></select> <script type="text/javascript"> $("#list1").change(function() { $.ajax({ url : "get_list2.php?id=" + $(this).val(), type: 'GET', dataType:'json', success : function(data) { if (data.success) { $('#list2').html(data.options); } else { // Handle error } } }); }); </script> 

PHP (get_list2.php)

 require_once("config.php"); $id = $_GET['id']; if (!isset($id) || !is_numeric($id)) $reponse = array('success' => FALSE); else { // Where $db is a instance of PDO $query = $db->prepare("SELECT * FROM mytable WHERE id = :id"); $query->execute(array(':id' => $id)); $rows = $query->fetchAll(PDO::FETCH_ASSOC); $options = ""; foreach ($rows as $row) { $options .= '<option value="'. $row .'">'. $row .'</option>'; } $response = array( 'success' => TRUE, 'options' => $options ); } header('Content-Type: application/json'); echo json_encode($response); 

PS: не проверено, но должно работать … Наверное.