jQuery自动完成不发送ajax数据

时间:2012-03-14 05:32:59

标签: jquery autocomplete

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.js"></script>    

$('#query').autocomplete({
        source: 'parts_by_partno.php',
        select: function (event, ui) {
            $("#query").val(ui.item.label); // display the selected text
            $("#hiddenId").val(ui.item.value); // save selected id to hidden input
        }
    });

我在firebug中没有出错,但是firebug显示这个函数甚至没有调用页面。我做错了什么?

3 个答案:

答案 0 :(得分:2)

检查出来:

http://jsfiddle.net/xJpsL/1/

如果我在Chrome中观看网络请求,它正在请求它。我假设你没有忘记脚本标签?顺便说一句,autocomplete.js的第三个javascript文件不存在(也不需要,因为自动完成是jquery ui文件的一部分)。

答案 1 :(得分:2)

以下是我如何使其工作的代码 使用每个功能,也可以使用多个字段。

$('#query').each(function(i, el) {
    el = $(el);
    el.autocomplete({

        // get source using ajax function
        // If you need to send extra parameters to parts_by_partno.php
        // use data: {}
        source: function(request, response) {
            $.ajax({
                type: 'GET',
                url: 'parts_by_partno.php',

                // when you type word in text field
                // el.val() gets a word and ajax sends value of el.val() to server
                data: {id: el.attr('id'), term: el.val()},

                success: function(data) {
                    //data - data returned from server
                    response(data);
                },
                dataType:"json"
            })
        }
    });
});
PHP中的

=================== ===================

  

$ sendArray = array();

$query = "SELECT * FROM ".$table." WHERE name LIKE '".$_GET['term']."%' LIMIT 10"

while($row=mysql_fetch_array(mysql_query($query)){

  array_push($sendArray, $row['name']);

};

echo json_encode($sendArray);

答案 2 :(得分:0)

将代码包装在就绪处理程序

$(function(){
 $('#query').autocomplete({
        source: 'parts_by_partno.php',
        select: function (event, ui) {
            $("#query").val(ui.item.label); // display the selected text
            $("#hiddenId").val(ui.item.value); // save selected id to hidden input
        }
    });

});