我正在设计一个网络应用程序,需要一种方法从MySQL数据库中提取字符串,并在用户在表单中键入数据时将其显示为下拉建议。
例如,如果用户输入了:“stac”,应用程序应搜索数据库并提供以下建议:“stack”“stackoverflow”。我正在寻找一些关于Stack Overflow上很多标记字段如何工作的simalar。这样做的最佳方式是什么?
答案 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,您都将使用服务器端语言生成示例中显示的字符串列表,