php - jquery 自动完成插件不起作用

标签 php jquery mysql autocomplete

我正在尝试使用 jquery 自动完成插件,但我还没有成功!我读了很多例子,我的代码似乎是正确的,但不起作用!

我的 HTML 代码是:

<?php require_once 'header.php';?>

<html>

<head>
    <title></title>

    <script>
        $("#country").autocomplete({
            source: "country_autocomplete.php",
            autoFocus: true
        });

    </script>
</head> 
<body>



<form action="" method="post" >
<ul>
    <li>
        <label> E-mail:</label><input class="fr" type="text" name="uemail"  size="60%"/>
    </li>
    <li>
        <label> Phone:</label><input class="fr" type="text" name="uphonenum"  size="60%"/>
    </li>
    <li>
        <label> Firstname:</label><input class="fr" type="text" name="ufname"  size="60%"/>
    </li>

    <li>
        <label> Last name:</label><input class="fr" type="text" name="ulastname"  size="60%"/>
    </li>
    <li>
        <label> Country:</label><input class="fr" type="text" name="ucountry"  id="country" size="60%"/>
    </li>
    <li>
        <label> State or Province:</label><input class="fr" type="text" name="state"  id="ustate"  size="60%"/>
    </li>
    <li>
        <label> City:</label><input class="fr" type="text" name="ucity" id="city"  size="60%"/>
    </li>
    <li>
        <label> Post-code:</label><input class="fr" type="text" name="upostcode" id="postcode" size="60%"/>
    </li>
    <li>
        <label> Adress 1*:</label><input class="fr" type="text" name="uadrr1"  size="60%"/>
    </li>
    <li>
        <label> Adress 2:</label><input class="fr" type="text" name="uadrr2"  size="60%"/>
    </li>
    <li>
        <label> Compagny name:</label><input class="fr" type="text" name="ucompanyname"  size="60%"/>
    </li>
    <li style="background-color: #000;">
        <input class="fr" type="submit" name="submitpwd" style="width: auto;"  value="Update"/>
    </li>
</ul>
</form>

        </td>
    </tr>
</table>



<?php require_once 'footer.php';?>       

</body>
</html>

我的country_autocomplete.php 文件是:

<?php

define('DB_SERVER', 'localhost');
define('DB_USER', 'user');
define('DB_PASSWORD', 'pswd');
define('DB_NAME', 'db_name');

if (isset($_GET['term'])){


    try {
          $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
          $stmt = $conn->prepare('SELECT country.name FROM country WHERE country.name LIKE :term');
          $stmt->execute(array('term' => $_GET['term'].'%'));

          $result = $stmt->fetchAll();

          if ( count($result) ) {
            foreach($result as $row) {
              echo json_encode($row);
            }  
          } else {
            echo "No rows returned.";
          }
        } catch(PDOException $e) {
            echo 'ERROR: ' . $e->getMessage();
        }
}


?>

谁能告诉我出了什么问题吗?

最佳答案

看起来您的 php 没有输出字符串数组或形式为 {label: label, value: value} 的对象数组。 (另外,上面介绍的标记格式不正确,但我猜只是没有粘贴某些内容。)尝试这样的操作(未经测试):

if ( count($result) ) {
        echo json_encode($result);  
      }

关于php - jquery 自动完成插件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512113/

相关文章:

php - 一个元素在多维数组中出现多少次

PHP代码: usage of this keyword

javascript - jQuery:无法淡出先前淡入的元素

mysql - 恢复转储时忽略一些插入

c# - Phpseclib 在 session 中生成 RSA key (使用 C# 客户端)

javascript - PHP 包含后 JQuery 不更新 CSS 元素

jquery - 响应居中和裁剪非背景图像

javascript - Node.js:通过前端执行服务器脚本

c# - 更新对象而不选择 EF6 MySQL

php - 如何获取老客户名单