jQuery表单输入建议

时间:2010-01-25 18:59:00

标签: jquery mysql ajax

我正在设计一个网络应用程序,需要一种方法从MySQL数据库中提取字符串,并在用户在表单中键入数据时将其显示为下拉建议。

例如,如果用户输入了:“stac”,应用程序应搜索数据库并提供以下建议:“stack”“stackoverflow”。我正在寻找一些关于Stack Overflow上很多标记字段如何工作的simalar。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:5)

使用PHP,这很简单。

我会在SQL中使用LIKE关键字来查找相关结果。

然后我将结果解析为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 :(得分:1)

查看jQuery autocomplete plugin。无论是在页面加载还是通过调用ajax,您都将使用服务器端语言生成示例中显示的字符串列表,