В настоящее время я работаю над проектом, в котором мне нужно, чтобы форма автозаполнения вызывала его информацию из файла db. Я видел много учебников по формам автозаполнения jquery, но я не знаю, как вызвать db-файл для заполнения списка.
Я работаю в PHP. В настоящее время код представляет собой простой раскрывающийся список, который вызывает файл db для населения.
<?php global $wpdb; $depts = $wpdb->get_results( "SELECT * FROM departments ORDER BY department_name ASC" ); echo '<select>'; foreach($depts as $row) { echo '<option name="select_dept" value="'.$row->department_id.'">'.$row->department_name.'</option>'; } echo '</select>'; ?>
Любая помощь была бы потрясающей!
Недавно я использовал эту библиотеку для автозаполнения – http://www.devbridge.com/projects/autocomplete/jquery/ Итак, вот краткий сценарий, основанный на вашем:
<?php $query = isset($_GET['query']) ? $_GET['query'] : FALSE; if ($query) { global $wpdb; // escape values passed to db to avoid sql-injection $depts = $wpdb->get_results( "SELECT * FROM departments WHERE department_name LIKE '".$query."%' ORDER BY department_name ASC" ); $suggestions = array(); $data = array(); foreach($depts as $row) { $suggestions[] = $row->department_name; $data[] = $row->department_id; } $response = array( 'query' => $query, 'suggestions' => $suggestions, 'data' => $data, ); echo json_encode($response); } else { ?> <html> <body> <input type="text" name="" id="box" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <script src="http://www.devbridge.com/projects/autocomplete/jquery/local/scripts/jquery.autocomplete.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#box').autocomplete({ serviceUrl:'/', // callback function: onSelect: function(value, data){ alert('You selected: ' + value + ', ' + data); }, }); }); </script> </body> <html> <?}?>
Пожалуйста, следуйте этому очень хорошо написанному учебнику
Пользовательский интерфейс JQuery включает автозаполнение, хотя вам все равно нужно написать PHP-скрипт, чтобы вернуть информацию, которая будет добавлена в элемент управления, как это сделано через AJAX. Если вы знаете в PHP, как подключиться к базе данных, запросить ее и вернуть список результатов, то у вас не будет проблем с этим. JQuery делает AJAX предельно простым.
В зависимости от того, насколько сложным является ваш набор полей / данных, и принимая его не миллионы и миллионы неиндексированных записей, я был бы доволен автозаполнением от:
SELECT thing WHERE thing LIKE '".$query."%'
Так что если вы искали, скажем, еду … запрос «CA» вытащил CArrot и CAbbage и CAuliflower. Если вы добавили% к началу LIKE, вы можете получить результаты, содержащие ваш запрос, а не только начиная с него.
Страница, на которую попадет ваш пользователь, будет содержать часть JQuery, которая отправляет запрос и создает эффект автозаполнения из результатов, а также очень простой, отдельный скрипт PHP, который обращается к запросу AJAX, возвращает потенциальные «совпадения».
Взгляните на демонстрации Autocomplete на пользовательском интерфейсе JQuery