jQuery Ui AutoComplete使用PHP MySQL不检索结果

时间:2017-11-21 08:58:51

标签: php jquery mysql

我正在使用jquery ui,但它不能使用php和MySQL,虽然它使用javascript我正在尝试超过10个小时。我用过简单的html表单

这是我的HTML代码

<div class="col-md-12" class="col-centered">
                <form id="user_form" method="GET">      
                   <input id="tags" type="text" class="dic_input ui-autocomplete-input" name="ajaxData"/>
                   <button class="btn btn-lg btn-default"><i class="fa fa-2x fa-search"></i></button>
                </form>
            </div>

这是我的jquery代码

$(document).ready(function(){

$( "#tags" ).autocomplete({
      source: 'autocomplete.php'
    });

});

我从php文件中获得结果

<?php

  require("admin/functions/dbconfig.php");


    //get search term
    $searchTerm = $_GET['term'];

    //get matched data from skills table
    $sql ="SELECT lemma FROM lemma WHERE lemma like '" . $searchTerm . "%' ORDER BY lemma LIMIT 0,6";

    $q=mysql_query($sql);
    while ($row = mysql_fetch_array($q)) {
        $data[] = str_replace("-"," ",$row['lemma']);

    }

    //return json data
    echo json_encode($data);
?>

2 个答案:

答案 0 :(得分:0)

您可能需要设置内容类型标题,以便JQuery知道它返回的内容:

header("Content-type:application/json")

答案 1 :(得分:0)

请尝试

** Html文件**

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Demo</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>Country:</label><input type='text' name='country' value='' class='auto'></p>
    </form>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>    
<script type="text/javascript">
$(function() {

    //autocomplete
    $(".auto").autocomplete({
        source: "autocomplate.php",
        minLength: 1
    });                

});
</script>
</body>
</html>

** PHP文件** 文件名:autocomplate.php

<?php
define('DB_SERVER', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_NAME', 'demo');


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 country FROM countries WHERE country LIKE :term');
        $stmt->execute(array('term' => '%'.$_GET['term'].'%'));

        while($row = $stmt->fetch()) {
            $return_arr[] =  $row['country'];
        }

    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }


    /* Toss back results as json encoded array. */
    echo json_encode($return_arr);
}

?>