Предложение ввода формы jQuery - PullRequest
0 голосов
/ 25 января 2010

Я разрабатываю веб-приложение, и мне нужен способ извлекать строки из базы данных MySQL и отображать их в виде выпадающих подсказок, когда пользователь вводит данные в форму.

Например, если пользователь ввел: «stac», приложение должно выполнить поиск в БД и предоставить такие предложения, как: «stack» «stackoverflow». Я ищу что-то похожее на то, как много полей тегов здесь в Stack Overflow работают. Каков наилучший способ сделать это?

Ответы [ 2 ]

5 голосов
/ 25 января 2010

С помощью PHP это довольно просто.

Я бы использовал ключевое слово LIKE в SQL, чтобы найти релевантные результаты.

Затем я бы проанализировал результаты в JSON, а затем вернул их клиенту.

Быстрый пример:

<?php
   $_q = ( isset( $_POST[ 'q' ] ) && !empty( $_POST[ 'q' ] ) ) ? $_POST[ 'q' ] : NULL;
   if( $_q === NULL ) {
      echo 'invalid querystring';
      exit;
   }

   //connect to the db....
   $set = $db->query( 'SELECT name FROM my_table WHERE name LIKE \'%' . $_q . '%\';' );

   $json = array();
   while( $result = $set->fetch_array() ) {
      $json[] = $result[ 'name' ];
   }

   echo json_encode( $json );
?>

JavaScript: (с использованием jQuery)

function getResults( str ) {
    $.ajax({
        url:'suggest.php'.
        type:'POST',
        data: 'q=' + str,
        dataType: 'json',
        success: function( json ) {
            //json is now an array, here's where you render the dropdown data.
        }
    });
}

$( '.suggest' ).keyup( function() {
   getResults( $( this ).val() );
} );
1 голос
/ 25 января 2010

Проверьте плагин jQuery для автозаполнения .Либо при загрузке страницы, либо с помощью ajax вы создадите список строк, которые появятся в примере, используя язык вашего сервера,

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