如何使用jquery自动完成与php获取的服务器/ SQL数据?

时间:2014-10-10 08:56:08

标签: php jquery

此代码有问题吗?

表格输入:

<input type="text" id="currentTag" name="currentTag" class="inputbox"/>

jquery的:

$("#currentTag").autocomplete({
    source:'getautocomplete.php',
    minLength:1
});

getautocomplete.php

$term=$_GET["term"];
$query=mysql_query("SELECT * FROM table_name WHERE tag_value LIKE '%".$term."%' ORDER BY tag_value ");
$results=array();

while($row = mysql_fetch_array($query)){
    $results[] = array('label' => $row['tag_value']);
}
echo json_encode($results);
直接调用脚本时

getautocomplete.php输出:

[{"label":"birdseye"},{"label":"doggy"},{"label":"tomhat"}]

'解决' 这是一个黑客工作,但我最终将源设置为jquery var而不是url。然后使用php include将json回显到var中。这一切都在Joomla网站上。我不理解的一些冲突正在发生,因为上面的代码在Joomla之外的测试文件中工作。如果有人知道冲突,我很想学习。欢呼声。

$(document).ready(function() {
    $( "#currentTag" ).autocomplete({
        source: tags
    });
});
var tags = <?php include("getautocomplete.php");?>;

2 个答案:

答案 0 :(得分:1)

请参阅此链接http://jqueryui.com/autocomplete/

  1. 包括所有js。
  2. 使用Ajax从MySQL获取数据。继续
  3. 你现在做了什么。
  4. 在上面的链接中,您将看到演示源代码,请参阅

    尝试一次

     $( "#currentTag" ).autocomplete({
    source: function( request, response ) {
      $.ajax({
      url: "getautocomplete.php",
      dataType: "jsonp",
      data: {
     q: request.term
       },
       success: function( data ) {
      response( data );
       }
     });
     },
    minLength: 3
      });
    

答案 1 :(得分:0)

这里有一些问题,可能是任何问题

  • 我假设您首先连接到数据库,但示例中未显示,但可能是问题
  • 你应该确保逃脱$term,因为你提供了SQL注入的可用性
  • 如果您只需要SELECT *
  • ,则应避免使用tag_value
  • 如果要在结果
  • 中使用关联数组,则应使用mysql_fetch_assoc
  • 你应该确保源URL是正确的,它是你提供它的方式的相对路径,尝试总是使用绝对路径,你永远不知道你的脚本将被使用在哪里(并且有漂亮的网址,这变得更糟)