我正在尝试使用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();
}
}
?>
有人可以告诉我出了什么问题吗?
答案 0 :(得分:0)
看起来你的php不会输出字符串数组或形式为{label: label ,value: value }的对象数组。 (另外,你上面提到的标记不是很好,但是我猜的是没有粘贴的东西。)试试这样的东西(未经测试):
if ( count($result) ) {
echo json_encode($result);
}