从MySQL检索自动搜索值

时间:2013-08-31 11:04:04

标签: php jquery mysql json

我有这个Jquery自动搜索功能,它给我带来了resuts但是我更喜欢从数据库中选择硬编码而不是硬编码的可用标签。

<script>
    $(document).ready(function(){
        $("#tabs").tabs();

        var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
            "C",
            "C++",
            "Clojure",
            "Scheme"
        ];

        $("#autocomplete").autocomplete({
            source: availableTags
        });
    });
</script>   

你能提出解决方案吗?我需要JSON还是别的什么?

2 个答案:

答案 0 :(得分:1)

将源更改为php文件,搜索数据库并返回结果:

$("#autocomplete").autocomplete({
    source: search.php
});

的search.php

//get your stuff from the database and build an array

$array = array(
   0 => array(
      "label"   => "item #1",
      "value"   => 123
   ),
   1 => array(
      "label"   => "item #2",
      "value"   => 111
   ),
   2 => array(
      "label"   => "item #3",
      "value"   => 222
   )
);

echo json_encode($array);

答案 1 :(得分:1)

首先创建index.php并编写下面的代码。

<html>
<body>
<input type="text"  class="autosuggest"/><input type="submit" value="search"/>
<div class="dropdown">
<ul class="result"></ul>
</div>
<script src="jquery-1.8.2.min.js"></script>
<script src="javascrip.js"></script>
</body>
</html>

比创建javascript.js并编写下面的代码。

$(document).ready(function() {
    $('.autosuggest').keyup(function() {
    var search_term=$(this).attr('value');
    $.post('search.php', {search_term:search_term},function(data){
        $('.result').html(data);

        $('.result li').click(function(){
        var result_value=$(this).text();
    $('.autosuggest').attr('value', result_value);
    $('.result').html('');
        });

         });
        });
});

最后创建search.php并编写下面的代码。

<?php 
$con=mysql_connect('localhost','root','') or die(mysql_error());
$db=mysql_select_db('your database name');
if(isset($_POST['search_term']))
{
    $search_term=mysql_real_escape_string($_POST['search_term']);
$query=mysql_query("SELECT Names FROM `name` WHERE `Names` LIKE '$search_term%'");
while($row=mysql_fetch_array($query)){
echo '<li>',$row['Names'],'</li>';
}
}
?>

我认为这就是你需要的东西。

相关问题