2011-08-03 25 views
0

我無法使用jQuery AJAX調用。查詢運行正常,調試輸出也顯示正確的數據,但除了被調用的文檔中的第一個PHP條件外,沒有顯示任何內容。jQuery AJAX在第一個PHP條件後沒有顯示輸出

首先,有兩個按鈕,一個鏈接到 「核心」 其他 「電子郵件」:

下面是相應的JavaScript:

$("#core").click(function(){ 
    loaddetails ("core"); 
}); 
$("#email").click(function(){ 
    loaddetails ("email"); 
}); 

function loaddetails(type) { var query = "details=" + type; 
    $.post("details.php", query , function(data) { 
    $("#d-features").html(data); alert (data);}); 
    return false; 
}; 

而且details.php的內容:

<? if($_POST['details']=='core'){ ?> blah1 <? } 
    if($_POST['details']=='email') { ?> blah2 <? } ?> 

「blah1」和「blah2」都出現在警報框調試輸出中。但是,只有「blah1」纔會在頁面div(#d-features)上發佈,因爲「blah2」從未出現在頁面上。

我檢查過Firebug,並且絕對沒有錯誤。但我懷疑第二個條件請求可能已經循環,因爲單擊「電子郵件」按鈕時顯示的警告窗口顯示「阻止頁面創建其他對話框」,儘管即使未選中也不會顯示其他對話框。

什麼是造成這個問題,以及如何解決它?

+0

你確定'loaddetails(「email」);'被調用嗎? – HyderA

回答

0

好吧,它似乎是與我加載的包含這些鏈接的div的製表符效果衝突。所以一旦我刪除了這個效果,它現在就起作用了。但我不確定這個效果有什麼問題,我會發布另一個問題來解決這個問題。

感謝那些提供幫助!

0

.html()替換內容而不是追加。

嘗試改變這條線,看看是否所有的數據從兩個調用返回:

$("#d-features").html(data); ==>$("#d-features").append(data);

+0

感謝您的幫助。我試過了,不幸的是它仍然不起作用。僅當點擊第一個按鈕('核心')時才顯示「blah1」和「blah2」。然後重複它自己的blah1。 我想用「blah2」替換第二個調用的內容,所以我認爲html是我想要的。僅附加重複信息,並且出於某種原因,即使抓取正確,也不會顯示第二個按鈕的結果。 – Brian

0

您的代碼一個小的修改,你可以嘗試看看,如果這個工程:

function loaddetails(type) { 
    $.post(
     "details.php", 
     { 
      details: type 
     }, 
     function(data) { 
      $("#d-features").html(data); 
      alert (data); 
     } 
    ); 
    return false; 
} 
+0

非常感謝。我在你的代碼中添加了「type」後缺少的},不幸的是它仍然不起作用!只有「blah1」顯示,不顯示「blah2」。但Firebug顯示通過ajax檢索的正確文本,即「blah2」。這只是因爲一些奇怪的原因纔在網頁上發佈。我正在拉我的頭髮。 – Brian

+0

奇怪..我編輯我的帖子添加缺少的},感謝注意。 「Blah2」是否提醒?你可以嘗試把函數(數據)返回,也許它有幫助嗎?它可能不會幫助,但它會更好,然後拉出你的頭髮;-) – ChrisH

+0

是的,它提醒很好......只是不張貼到有問題的頁面。但我做了一個新的HTML頁面,只有兩個div和javascript以上,它似乎按預期工作。那麼是否有什麼可能會干擾在特定頁面上發佈的Ajax? – Brian