2011-06-16 107 views
0

我想实现jquery .ajax方法来简化我的网站中的ajax。使用jQuery Ajax方法显示来自PHP页面的响应?

这是我的工作的功能:

function autoComplete(q, succ) 
{ 
    $.ajax({type:"GET", 
     url: "search.php", 
     data: "q="+q, 
     success: succ 
    }); 
} 

$('input#auto_results').live('keyup', function() { 

    var text = $('input#auto_results').val();  

    autoComplete(text, 
     function(data) 
     { 

     alert(data); 

     }); 
}); 

PHP页面上的反应很简单:

echo "response"; 

所以我想,当函数应该提醒响应称为'keyup'。可悲的是,没有发生。我一定在做错事,我只是不确定它是什么。

+0

你检查过萤火虫吗?请求是否发送,是否收到数据?有没有错误? PHP页面和包含这个JS的页面在同一个域下? – Niklas 2011-06-16 08:36:13

+0

有没有JS错误?使用萤火虫或铬开发工具,你可以看到ajax请求是否正在启动? – 2011-06-16 08:37:43

+0

尝试做'alert(“Response:'”+ data +“'”)' - 这样您至少会在响应为空时提醒您(否则空的警报根本不会打开) – mkilmanas 2011-06-16 08:40:59

回答

3

是“keyup”事件发射吗? 做下列事项。

$('input#auto_results').live('keyup', function() { 

    var text = $('input#auto_results').val();  
    alert("Keyup event is firing"); 
    autoComplete(text, 
     function(data) 
     { 

     alert(data); 

     }); 
}); 

如果事件正在触发。然后看到你的代码Firebug的控制台选项卡

或把误差函数回调:

function autoComplete(q, succ) 
{ 
    $.ajax({type:"GET", 
     url: "search.php", 
     data: "q="+q, 
     error:function(request, textStatus, err){ 
      alert(request.statusText); 
     }, 
     success: succ 
    }); 
} 

你可能会得到近错误。