2012-06-20 18 views
0

獲取回聲我有這樣的:的.html()的jQuery來從PHP腳本

$(document).ready(function() { 
    $("input[type=button]").click(function() { 
     $("#test").html("W3Schools"); 
     alert("Would submit: " + $(this).siblings("input[type=text]").val()); 
     $.ajax({ url: "index.php", 
     data: {action: $(this).siblings("input[type=text]").val()}, 
     type: 'post' 
     }); 
    }); 
}); 

這w3School的顯然只是填充物,我有一個在我的PHP命名爲「generateHTML()」函數腳本,我想代替'W3Schools'。我怎麼去解決這個問題?

+0

使用'success'回調處理結果http://api.jquery.com/jQuery.ajax/ – Esailija

+0

你設置了你作爲'#test'的內容得到的迴應......查看文檔:http://api.jquery.com/jQuery.ajax/ –

+0

@Norse,它是。我的問題不是關於如何處理它,而是如何從函數中獲取數據? FelixKling我知道,我問的是從函數獲取echo'd html。 – Adola

回答

1

無論你定義功能,使用呼應響應,而不是回報響應。

因此,只要您調用$ .ajax函數,就會給出您可以在html中使用的響應。

PHP函數:

function generateHTML(){ 
// code 
    echo $response; 
} 

JS:

$(document).ready(function() { 
    $("input[type=button]").click(function() { 
     $("#test").html("W3Schools"); 
     alert("Would submit: " + $(this).siblings("input[type=text]").val()); 
     $.ajax({ url: "index.php", 
     data: {action: $(this).siblings("input[type=text]").val()}, 
     type: 'post', 
     success: function(response){ 
       $("#test").html(response); // will overwrite the previous HTML of test element 
      } 
     }); 
    }); 
}); 
+0

哦,上帝,這幾乎是正確的,但它複製一切,包括搜索欄!這僅僅是因爲我是一個糟糕的開發者嗎?或者有一些技巧呢? – Adola

+0

@Adola:它解決了你的問題嗎? –

+0

@Adola是的,不要請求一個完整的網頁響應的PHP頁面。 'ajax'不會調用PHP函數,它會像使用普通的Web瀏覽器一樣使用一個正常的請求。 – Esailija