自动完成jquery不会返回预期的结果

时间:2017-04-24 09:55:04

标签: php jquery

我正在使用php开发一个简单的jquery自动完成。它在大多数情况下工作得很好......但是当我进行某些搜索时,它不会检测特定的条目。例如,当我搜索" Si"我得到一个包括" Simon"的列表,但当我搜索" Jo"什么都没有。

以下是我拥有的两个文件:

  1. 的index.php

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>Search</title>
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" /> 
    </head>
    <body> 
    
    <form action='' method='post'>
    <p><label>Name:</label><input type='text' name='Name' value='' class='auto'></p>
    </form>
    
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script type="text/javascript">
    $(function() {
    
    //autocomplete
    $(".auto").autocomplete({
    source: "search.php",
    minLength: 2
            });             
            });
    </script>
    </body>
    </html>
    
  2. 的search.php

    <?php
    
    define('DB_SERVER', 'localhost');
    define('DB_USER', 'xxx');
    define('DB_PASSWORD', 'xxx');
    define('DB_NAME', 'xxx');
    if (isset($_GET['term'])){
    $return_arr = array();
    try {
        $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
        $stmt = $conn->prepare('SELECT Name FROM People WHERE Name LIKE :term');
        $stmt->execute(array('term' => '%'.$_GET['term'].'%'));
    
        while($row = $stmt->fetch()) {
            $return_arr[] =  $row['Name'];
        }
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }
    /* Return results as json encoded array. */
    echo json_encode($return_arr);
    } 
    ?>
    
  3. 这可能与例外列表有关吗?或者我在代码中犯了错误?

    作为一名新手,我对这个网站的大力帮助感到敬畏!

0 个答案:

没有答案