Javascript 在jQuery自动完成中获取动态值

Javascript 在jQuery自动完成中获取动态值,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,所以我有这个代码,我用它作为搜索框(就像我们在谷歌的自动搜索一样)。 在下面的示例中,值是硬编码的,但是,我需要在数组中有动态值 以下是代码:- <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Autocomplete - Default functionality</title> <link rel="stylesheet" href="

所以我有这个代码,我用它作为搜索框(就像我们在谷歌的自动搜索一样)。 在下面的示例中,值是硬编码的,但是,我需要在数组中有动态值

以下是代码:-

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Autocomplete - Default functionality</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {

    var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    $( "#tags" ).autocomplete({
      source: availableTags
    });
  });
  </script>

</head>
<body>

<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
</div>


</body>
</html>

jQuery UI自动完成-默认功能
$(函数(){
var availableTags=[
“动作脚本”,
“AppleScript”,
“Asp”,
“基本”,
“C”,
“C++”,
“Clojure”,
“COBOL”,
“ColdFusion”,
“二郎”,
“Fortran”,
“好极了”,
“哈斯克尔”,
“爪哇”,
“JavaScript”,
“口齿不清”,
“Perl”,
“PHP”,
“Python”,
“红宝石”,
“斯卡拉”,
“方案”
];
$(“#标记”).autocomplete({
资料来源:availableTags
});
});
标签:
在这个地方我怎么会有一个动态数组? 您可以假设我有一个变量$row,它从mysql数据库动态获取数据(搜索选项)

多谢各位

编辑:-

获取值的php代码:-

<?php
include 'dbconnector.php';
  $query="SELECT firstname from users order by userid";
  $result=mysql_query($query,$db) or die (mysql_error($db));
  $row=mysql_fetch_array($result);

?>

jQuery UI Autocomplete有一个“远程”数据功能。最简单的版本是:

$( "#tags" ).autocomplete({
  source: 'script.php'
});
php应该返回JSON数据。因此,您可以从$row创建一个数组,对其进行json_编码并返回

正如所承诺的,这里有一个以代码为基础的粗略示例。免责声明:我对jQueryUI所期望的格式不是100%熟悉,您应该知道mysql_query()是一种格式,您应该探索诸如或之类的替代方法

更新了答案以显示jQuery UI发送的$\u GET['term']的用法。我猜你在找名字?我正在使用DB列“firstname”

巨大的免责声明:当您现在将用户生成的字符串传递到数据库查询中时,请确保您正确地进行了清理。我已经使用mysql\u real\u escape\u string()来匹配您的示例,但它已被弃用,您应该像上面那样研究替代方案

// Sanitise GET var
$term = mysql_real_escape_string($_GET['term']);

// Add WHERE clause
$query = "SELECT `id`, `firstname` FROM `users` WHERE `firstname` LIKE '%".$term."%' ORDER BY `id`";

$result = mysql_query($query,$db) or die (mysql_error($db));

while($row = mysql_fetch_array($result)){

    $array[$row['id']] = $row['firstname'];

}

header('Content-type: application/json');
print json_encode($array);
exit(); // AJAX call, we don't want anything carrying on here

请向我们展示您当前的php代码!:)@Daniellisk使用php代码进行了更新。您需要将结果,
$row
编码为php文件中的json,然后使用该php文件作为自动完成的源代码。使用本教程作为参考。是否有script.php文件的示例?我对JSON真的很陌生。谢谢你发布这篇文章。我会尝试一下,然后再给你回复。效果很好,但不管我键入什么。它都会抛出数据库中的所有值。这怎么可能解决呢?效果很好。非常感谢。这是我50%的问题。接下来的50%是,当用户单击特定搜索结果时,我将如何重定向用户?假设,我想将他重定向到:page.php?id=(我们从search.php页面上的查询中获得的id)