我正在使用php和javascript为我的wordpress网站创建一个动态填充的自动完成搜索引擎。
示例:用户想要搜索“Nike Shoes”,以便他们在搜索引擎中输入Nike Shoes,他们应该在输入前3个字母后看到Nike Shoes作为建议。
我遇到一个问题,只有耐克这个词出现在一个建议中。您在搜索引擎中输入的任何字词都会出现这种情况。只显示字符串的第一个单词。我确信它与单词之间的空格有关,但不太确定如何修复它。
以下是我的动态填充自动填充的代码:
var availableTags = '<?php $result = mysql_query("select * from state");
$row = mysql_fetch_array($result);
echo $row['name']; ?>'.split(" ");
$( "#title" ).autocomplete({
source: availableTags,
minLength: 3,
position: { my : "left top", at: "left top" },
appendTo: "#search-container"
});
});
我是通过此网站创建此代码的:http://www.tizag.com/mysqlTutorial/mysqlquery.php
如果有人能帮助我,我会非常感激。
谢谢,
史蒂夫
答案 0 :(得分:0)
我正在使用此功能进行自动建议列表。您可以稍加修改地使用它
function get_autosuggest_list($str=''){
$q = strtolower($str);
$entry = array();
$i=0;
if(!empty($q))
{
$entry[$i] = "A.fieldname like '".$q ."%'" ;
$i++;
}
$sqlentry = "";
$j=0;
foreach($entry as $data)
{
if($j==0)
$sqlentry = " where ".$data;
else
$sqlentry .= " and ".$data;
$j++;
}
$sql = "SELECT DISTINCT field_name FROM `table` A ".$sqlentry." ";
$query = mysql_query($sql);
$res = mysql_fetch_array($query);
foreach($res as $row)
{
$items = $row->fieldname;
echo "$items\n";
}
}
用法:
get_autosuggest_list(string);