有人可以帮我添加一些修改我的PHP代码,以便它允许用户获得多个自动建议吗? (现在它适用于一个值,但我希望他/她接收自动建议更多值,(例如在插入逗号后,将再次显示自动完成建议)。
这是HTML代码:
<p><label>Actor/actress:</label><input type='text' name='name' value='' class='auto'></p>
<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: "actorsauto.php",
minLength: 2
});
});
</script>
这是php代码:
<?php
define('DB_SERVER', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', 'xxxxxx');
define('DB_NAME', 'imdb');
if (isset($_GET['term'])){
$return_arr = array();
try {
$conn=new PDO('mysql:dbname=imdb;host=localhost', 'root', 'xxxxx');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT name FROM name 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();
}
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
}
?>
我是jquery和php的新手,感谢你的所有想法。
答案 0 :(得分:0)
您可以通过拆分搜索词来组合where语句,例如在用户键入的每个空格处。让他们说他搜索了music cd
。以下代码将获取包含字符串cd
或music
的所有内容。
$stmt = $conn->prepare('SELECT name FROM name WHERE :where');
if($_GET['term']){
$termParts = explode(' ', $_GET['term']);
$whereParts = array()
foreach($termParts as $term){
$whereParts[] "name LIKE '%".$term."%'";
}
$where = implode(' OR ', $whereParts);
} else {
$where = 1;
}
$stmt->execute(array('where' => $where));