将id和value与jquery autocomplete、javascript、json和php一起使用


Using id and value with jquery autocomplete, javascript, json and php

我正在寻找一个简单的代码示例,展示如何使用带有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 );

所以这都是未经测试的伪代码,但它应该为您指明正确的方向。