JQuery живой поиск из базы данных MySQL? - PullRequest
0 голосов
/ 15 ноября 2009

в SO вы можете искать теги, не нажимая Enter.

я хочу знать:

  • являются ли теги извлеченными из базы данных или из файла XML?
  • задействован ли ajax?

Я новичок во внешнем интерфейсе. если задействован Ajax. как мне написать код?

Я хочу получить доступ к файлу php, который возвращает данные. но я не знаком с тем, как это работает практически.

если код будет выглядеть примерно так:

<html>
<body>

<script type="text/javascript">
function ajaxFunction()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.myForm.time.value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","time.php",true);
xmlhttp.send(null);
}
</script>

<form name="myForm">
Name: <input type="text" name="username" onkeyup="ajaxFunction();" />
Time: <input type="text" name="time" />
</form>

</body>
</html>

как отправить текст, введенный пользователем после того, как он отпустил ключ в php? и как я должен вернуть значения после того, как php выбрал теги с помощью SELECT. эхо?

PLZ, ведите меня немного. я так растерялся, когда задействован внешний интерфейс.

Ответы [ 3 ]

2 голосов
/ 15 ноября 2009

Вы можете узнать это сами, используя Firebug . Вы заметите, что ввод буквы в текстовом поле тега вызовет запрос к серверу.

Например, запись «C» даст вам следующий ответ от сервера:

c#|48259
javascript|18318
c++|16999
asp.net-mvc|7224
c|6948
css|6563

Затем результаты интерпретируются в SO и затем отображаются с помощью jQuery.

Используя Firebug при написании ответа, вы также заметите, что клиент отправляет запросы каждую минуту или около того:

POST answer-activity-heartbeat

Именно поэтому вы получаете уведомление о том, что вопрос, над которым вы сейчас работаете, обновлен новыми ответами.

В целом, использование FireBug действительно поможет вам понять, как работают веб-сайты. Я рекомендую вам начать использовать его, если вы хотите увидеть немного лучше, как SO был задуман.

Привет

1 голос
/ 15 ноября 2009

Глядя на консоль firebug, вы видите, что она отправляет и получает данные с помощью ajax. Скорее всего, сценарий, который выбирает данные из базы данных.

Вы можете сделать это с помощью jQuery довольно легко.

<script type="text/javascript">
  $("#username").autocomplete("search.php");
</script>
<form name="myForm">
  Name: <input type="text" name="username" id="username" />
  Time: <input type="text" name="time" />
</form>

<?php
//search.php
$q = $_GET['q']
$result = $db->query("SELECT username, id FROM users WHERE username LIKE '%$q%'");
while($user = $result->fetch_assoc()){
  echo $user['username']."|".$user['id']."\n";
}

Вы можете скачать плагин здесь: http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

и jQuery: http://jquery.com

0 голосов
/ 15 ноября 2009

Я рекомендую, если вам действительно нужно знать, как это работает, взгляните на документацию JS , но если вам нужно быстро, используйте jquery и прочитайте документацию (или купите книгу типа Справочное руководство jQuery ). Это действительно упрощает способ создания AJAX, и вы можете отправлять обратно с сервера все, что захотите, от JSON до HTML.

Кстати, способ узнать, когда значение поля ввода изменилось для запуска JS, который выполняет запрос AJAX, использует событие onchange ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...