我在做什么错误的AJAX自动完成标记实现?

时间:2011-08-01 19:03:34

标签: php jquery mysql

我正在尝试使用S/O

php/jquery.上添加标签的方式做类似的事情
$tagPart = $_POST['tagPart'];
$tagPart = strip_tags($tagPart,"");
$tagPart = trim($tagPart);
$tag_array = explode(',',$tagPart);

$lastTag = end($tag_array);

$part_query = "SELECT title FROM tag WHERE title LIKE '$lastTag%'";

$part_result = mysql_query($part_query) or die($lastTag);

while ($row = mysql_fetch_assoc($part_result)){

 echo "<div id ='link' onclick = 'addText(\"".$row['title']."\");'>" . $row['title'] ."</div>";

}

这适用于添加第一个标记。但是在添加逗号后没有显示第二个标记的任何结果...

所以,如果我做PHP,例如JQuery ...我将能够添加PHP但是在添加和第二个标记时,SQL查询不会导致任何结果...我认为它可能与之匹配整个字符串,而不仅仅是最后一个标签?

2 个答案:

答案 0 :(得分:1)

$ lastTag中是否有空格?例如:

$tagPart = 'One, Two, Three';
$tag_array = explode(','$tagPart);
$lastTag = end($tag_array); //$lastTag = ' Three' -> notice the space!

我不是MySQL专家,所以我不确定“LIKE”是否会自动修剪它,但你可能想要做$ lastTag = trim(结束($ tag_array))。如果空间是问题,第一个标签工作的事实是有意义的,因为列表中的第一个标签没有前面的空格。

答案 1 :(得分:1)

尝试输出sql语句并检查错误,额外空格等。

$part_query = "SELECT title FROM tag WHERE title LIKE '$lastTag%'";
echo "sql statement: ".$part_query;

你修剪$tagPart,但也许你需要修剪$lastTag

$lastTag = trim(end($tag_array));