根据数据库中存储的数据自动完成或自动建议

时间:2016-09-01 作者:P. Sheth

我喜欢传销。所以我希望所有用户名都作为建议出现在父名称输入表单中。那么我该如何编写代码呢?包括哪个jquery?我添加以下代码

$query = isset($_GET[\'query\']) ? $_GET[\'query\'] : FALSE;
if ($query) {
// escape values passed to db to avoid sql-injection
$depts = $wpdb->get_results( "SELECT * FROM wp_mlm_info WHERE user_name LIKE \'".$query."%\' ORDER BY user_id ASC" );

$suggestions = array();
$data = array();
foreach($depts as $row) {
    $suggestions[] = $row->user_name;
    $data[] = $row->user_id;
}
$response = array(
    \'query\' => $query,
    \'suggestions\' => $suggestions,
    \'data\' => $data,
);
echo json_encode($response);
添加以下jquery

wp_enqueue_script(\'newscript\',plugins_url( \'js/jquery-1.10.2.js\' , __FILE__ ),array( \'jquery\' )); 
wp_enqueue_script(\'newscript\',plugins_url( \'js/jquery-ui.js\' , __FILE__ ),array( \'jquery\' )); 
wp_enqueue_script(\'newscript\',plugins_url( \'js/jquery.min.js\' , __FILE__ ),array( \'jquery\' )); 
wp_enqueue_script(\'newscript\',plugins_url( \'https://www.devbridge.com/projects/autocomplete/jquery/local/scripts/jquery.autocomplete.js/\' , __FILE__ ),array( \'jquery\' )); 
但不能使用自动搜索或自动建议字段。

Javascript

$(document).ready(function(){
    $(\'#parent_name\').autocomplete({ 
        serviceUrl:\'/\',
        // callback function:
        onSelect: function(value, data){ alert(\'You selected: \' + value + \', \' + data); },
});


});
你能帮我解决这个问题吗?

1 个回复
SO网友:Jeremy Ross

首先,您没有完全正确地将脚本排队。

第一个参数应该是该脚本的唯一名称(不是所有的“newscript”)。此外,您还将jquery排队两次。我不确定您将文件存储在哪里,但至少最后一条路径不正确。最后,第三个参数是让WordPress知道您正在排队的脚本是否依赖于其他脚本。jQuery UI和jQuery Autocomplete依赖于jQuery,因此这些都是正确的。其他的不需要。

此外,WordPress已经有了jQuery,所以您不需要将它的另一个副本排队。

无论如何,这应该会让你离得更近一些:

wp_enqueue_script(\'jquery\'); //Because it ships with WordPress
wp_enqueue_script(\'jquery-ui\', get_template_directory_uri() . \'js/jquery-ui.js\',array( \'jquery\' )); 
wp_enqueue_script(\'autocomplete\', \'https://cdnjs.cloudflare.com/ajax/libs/jquery.devbridge-autocomplete/1.2.26/jquery.autocomplete.js\',array( \'jquery\' ));
WordPress还附带了部分jQuery UI和其他有用的脚本。您可以在此处查看整个列表以及如何将其排队:https://developer.wordpress.org/reference/functions/wp_enqueue_script/