我正在寻找一个简单的代码示例,展示如何使用带有id和值、json和php的jquery自动完成,但我找不到任何代码。基本上,我在数据库中有一个员工姓名列表,他们有一个id和一个名字。我想显示名称,但在表单提交的隐藏字段中使用id。我想通过php和json-ajax提供名称列表。我还想使用这个功能,在它显示自动完成之前,你必须输入3个字符,因为这是一个很长的员工姓名列表。不确定是否必须将这3个字符作为参数传递给php。
我是一个笨蛋,所以举个简单的例子会非常感激。
感谢
jQuery UI中有一些很好的例子:http://jqueryui.com/demos/autocomplete/#remote
单击示例下方的查看源代码按钮,了解Javascript方面的情况。注意"source"(这是PHP脚本传递结果的路径)和"minLength"的参数。将minLength属性设置为3将解决问题的第二部分。
至于远程端,结果需要是JSON格式,这样您就可以从数据库中查询数据,将其作为PHP关联数组,然后使用json_encode()
方法将其转换为自动完成插件可以读取的格式。示例中的自动完成实现将一个querystring变量"term"发送到包含用户输入的搜索字符串的源文件。
此示例要求服务器的JSON结果采用以下格式:[ { "id": "Branta hrota", "label": "Pale-bellied Brent Goose", "value": "Pale-bellied Brent Goose" }, ...]
因此,PHP源页面可以通过使用以下代码来交付结果:
// source.php (or whatever path you used for the autocomplete "source" setting)
// Sanitize your input!
$term = mysql_real_escape_string( $_GET['term'] );
$results = mysql_query( "SELECT * FROM employees WHERE name LIKE '%{$term}%' "); // Grab your data
$output_array = new array();
while ( $row = mysql_fetch_assoc( $results ) ) {
$output_array[] = array(
'id' => $row['id']
, 'label' => $row['name']
, 'value' => $row['name']
);
}
// Print out JSON response
echo json_encode( $output_array );
所以这都是未经测试的伪代码,但它应该为您指明正确的方向。