jquery自动完成插件不起作用

时间:2013-08-29 13:16:53

标签: 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();
        }
}


?>

有人可以告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

看起来你的php不会输出字符串数组或形式为{label: label ,value: value }的对象数组。 (另外,你上面提到的标记不是很好,但是我猜的是没有粘贴的东西。)试试这样的东西(未经测试):

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