Javascript jQuery自动完成字段赢得';不行,我怎样才能修好它?

Javascript jQuery自动完成字段赢得';不行,我怎样才能修好它?,javascript,php,jquery,autocomplete,Javascript,Php,Jquery,Autocomplete,我想创建一个jQuery字段,当我键入用户名时,它将自动完成用户名,下面是我的代码: 首先是我的jQuery脚本: <script> $(document).ready(function(){ $('#search').typeahead({ source: function(query, process) { $.ajax({ url: 'func/autocom

我想创建一个jQuery字段,当我键入用户名时,它将自动完成用户名,下面是我的代码:

首先是我的jQuery脚本:

<script>
    $(document).ready(function(){
        $('#search').typeahead({
            source: function(query, process) {
                $.ajax({
                    url: 'func/autocomplete.php'
                    type: 'POST';
                    data: 'query=' + query;
                    dataType: 'JSON';
                    async: true;
                    success: function(data) {
                        process(data);
                    }
                });
            }
        });
    });
</script>

$(文档).ready(函数(){
$(“#搜索”)。请提前键入({
来源:功能(查询、流程){
$.ajax({
url:'func/autocomplete.php'
类型:“职位”;
数据:“查询=”+查询;
数据类型:“JSON”;
异步:true;
成功:功能(数据){
过程(数据);
}
});
}
});
});
其次是形式:

<div class="container">
    <div class="ribbon">Change player's IP(UCP Whitelist)</div>
    <table border="1" cellspacing="15" align="center">
        <tr>
            <form action='func/changeip.php' method='POST' class="navbar-search">
                <td><input type='text' class="search-query span3 pull-right" placeholder='Account Name' name='username' id='search' data-provide="typeahead"></td>
                <td><input type='text' placeholder='ex. 192.162.1.20' name='ip' id='ip'></td>
                <td><input type='submit' value='Change IP'></td>
            </form>
        </tr>
    </table>    
</div>

更改玩家的IP(UCP白名单)
第三个是我的autocomplete.php:

<?php
include '../includes/connect.php';

if (isset($_POST['query'])) {
    $query = $mysqli->real_escape_string($_POST['query']);
    $sql = $mysqli->query("SELECT * FROM accounts WHERE Username LIKE '%{$query}%'");
    $array = array();

    while ($row = fetch_assoc($sql)) {
        $array[] = $row['Username'];
    }

    echo json_encode($array);
}    
?>
请尝试以下操作:
您的脚本应该如下所示:

    <script>
        $(document).ready(function(){
            $("#search").on("keyup", function(){
                    $.ajax({
                        url: 'func/autocomplete.php',
                        type: 'POST',
                        data: {query: $(this).val()},
                        success: function(data) {
                            process(data); 
                        }
                    });
              });
            });
    </script>
这里有两个文件可以帮助您理解这个过程。复制它们并测试它们是否有效。 stackoverflow.php

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $("#search").on("keyup", function(){
                    var searchedText = $(this).val();
                    if (searchedText.length>=2){
                        $.ajax({
                            url: 'stack_autocomplete.php',
                            type: 'POST',
                            data: {query: $(this).val()},
                            success: function(data) {
                                 $("#search").val(data);
                            }
                        });
                   }
              });
            });
    </script>
</head>
<body>
    <div class="container">
        <div class="ribbon">Change player's IP(UCP Whitelist)</div>
        <table border="1" cellspacing="15" align="center">
            <tr>
                <form action='func/changeip.php' method='POST' class="navbar-search">
                    <td><input type='text' class="search-query span3 pull-right" placeholder='Account Name' name='username' id='search' data-provide="typeahead"></td>
                    <td><input type='text' placeholder='ex. 192.162.1.20' name='ip' id='ip'></td>
                    <td><input type='submit' value='Change IP'></td>
                </form>
            </tr>
        </table>    
    </div>
</body>
<?php
header('Content-Type: application/json');
$array = array("ana","alex","andrei");
$answer = "Nothing found.";
foreach ($array as $key => $value) {
    if (strpos($value,$_POST['query'])!==false) $answer = $value;
}
echo json_encode($answer);
exit();
?>

$(文档).ready(函数(){
$(“#搜索”)。在(“键控”,函数()上{
var searchedText=$(this.val();
如果(searchedText.length>=2){
$.ajax({
url:'stack_autocomplete.php',
键入:“POST”,
数据:{query:$(this.val()},
成功:功能(数据){
$(“#搜索”).val(数据);
}
});
}
});
});
更改玩家的IP(UCP白名单)

stack_autocomplete.php

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $("#search").on("keyup", function(){
                    var searchedText = $(this).val();
                    if (searchedText.length>=2){
                        $.ajax({
                            url: 'stack_autocomplete.php',
                            type: 'POST',
                            data: {query: $(this).val()},
                            success: function(data) {
                                 $("#search").val(data);
                            }
                        });
                   }
              });
            });
    </script>
</head>
<body>
    <div class="container">
        <div class="ribbon">Change player's IP(UCP Whitelist)</div>
        <table border="1" cellspacing="15" align="center">
            <tr>
                <form action='func/changeip.php' method='POST' class="navbar-search">
                    <td><input type='text' class="search-query span3 pull-right" placeholder='Account Name' name='username' id='search' data-provide="typeahead"></td>
                    <td><input type='text' placeholder='ex. 192.162.1.20' name='ip' id='ip'></td>
                    <td><input type='submit' value='Change IP'></td>
                </form>
            </tr>
        </table>    
    </div>
</body>
<?php
header('Content-Type: application/json');
$array = array("ana","alex","andrei");
$answer = "Nothing found.";
foreach ($array as $key => $value) {
    if (strpos($value,$_POST['query'])!==false) $answer = $value;
}
echo json_encode($answer);
exit();
?>


请将这两个文件放在您的测试目录中,并访问stackoverflow.php。然后在搜索框中键入以下名称之一:alex | ana | andrei

您的HTML无效。您的
表单
元素需要包装整个
。是否包括typeahead库?autocomplete不是核心jQuery的原生版本package@Pavel诺扎罗夫这个答案对你有帮助吗?如果你需要更多的解释,请回答这里。