У вас есть все части, но ваш заказ / методология немного не в порядке.Попробуйте создать второй файл с именем типа ajax.php
и поместите туда весь свой php-код.Чтобы убедиться, что вы выводите хороший JSON, добавьте строку header('Content-Type: text/json; charset=ISO-8859-1');
в самом начале файла ajax.php
(вы должны установить заголовок перед отправкой любого вывода, иначе вы получите ошибку).Теперь вам нужно запросить данные предложения:
$(document).ready(function() { // Runs when your page is loaded in the user's browser
$.getJSON('ajax.php', function(data) { // Runs ajax.php, then executes an anonymous function to handle the response
$('input[name="fname"]').autoSuggest(data); // Set your input field to use automatic suggestions with the returned data
}); // end getJSON
}); // end ready
Этот код просто выполняет асинхронный HTTP-запрос для ajax.php
и передает возвращенные данные JSON плагину jQuery с автоматическим предложением.Поместите его внутрь тега <script type="text/javascript"></script>
.Он будет запускаться один раз при загрузке страницы из-за использования $(document).ready(...)
.Я добавил небольшую оптимизацию (input[name="fname"]
), чтобы jQuery не пытался присоединить функцию автоматического предложения к каждому вводу текста на вашей странице.Если это то, что вы хотели сделать (маловероятно), просто измените его обратно на input[type=text]
.
Вам действительно не нужен отдельный php-файл, чтобы это заработало.Ничто не мешает вам делать все это в одном файле, но вы скоро поймете, насколько беспорядочным и неуправляемым это может быть.Для меня проще всего представить мой php-код "ajaxy" как отдельный модульный элемент моего веб-приложения.
Обязательно обратитесь к этим страницам для получения подробной информации: