开发者

Autocomplete in jQuery just...stopped working?

I had jQuery autocomplete working perfectly with CodeIngiter when inexplicably it just stopped functioning completely. When I visit the controller for the autocomplete I still see the correct array - Javascript just isn't returning the JSON data. What makes this weird is that it was working fine, and then out开发者_如何学JAVA of the blue just stopped working.

Here's my Javascript:

$( "#clubs-complete" ).autocomplete({
    source: function(request, response) {
        $.ajax({
            url: 'http://www.myurl.com/create/autocomplete',
            data: 'term='+$("#clubs-complete").val(),
            dataType: "json",
            type: "POST",
            success: function(data){
                alert(data);
                response(data);
            }
    });
},
minLength: 1
});

Here's my controller:

public function autocomplete()
{
    // Search term from jQuery
    $term = $this->input->post('term');

$this->db->select('name','address2');
$this->db->from('clubs');
$this->db->like('name', $term);
$suggestions = $this->db->get()->result();

if (count($suggestions) > 0) {
    $data = array();

    foreach ($suggestions as $suggestion) {
        array_push($data, $suggestion->name);
    }

        // Return data
        echo json_encode($data);
}


}

Does anyone have any idea what's going on? The alert in the javascript function returns nothing now, and it used to. When I visit the URL directly I still see the full array.

Please help, I'm tearing my hair out.


In IE there are developer tools available if you press F12. There's something similar in Firefox called Firebug. In either of these you can debug in-browser javascript. Set breakpoints inside the source fn and also within the success function, it may give you some insight.

You also may want to get an http debugging proxy, something like Fiddler2 or Charles, which will let you see outgoing HTTP requests and their corresponding responses. Fiddler2 runs on Windows and works with FF and IE, and pretty much every other http client. This will let you see the messages that your AJAX service is returning to the in-browser javascript.

Those things ought to give you insight into the "not working" problem.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜