2011-06-16 150 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 
    }); 
} 

你可能會得到近錯誤。