2011-03-11 87 views
0

在開始之前,我使用PHP和JS lib Prototype來處理我的代碼中的Ajax。使用javascript原型自動隱藏DIV

所以我的問題是這樣的: 我使用下面的函數到PHP文件加載到目標DIV

function ajaxUpdater(id, url) 
{ 
    new Ajax.Updater('targetDiv', 'data.php', {asynchronous: true}); 
} 

用一個按鈕內的onClick功能,我搶數據的內容。 php並將其顯示在ID爲'targetDiv'的DIV中。

問題是這樣的。

data.php中有某些東西我想要隱藏,只有在事件觸發時才顯示。 我一直在嘗試加載不同的解決方案,但似乎沒有任何工作。 (只是爲了增加混亂,data.php被單獨打開時職能的工作,而不是在data.php在使用我的AJAX功能加載。

任何幫助或線索或任何將非常感激!

+0

的可能重複[如何強制Javascript來HTML響應Ajax請求中執行](http://stackoverflow.com/questions/278122/how-to-force-javascript-to-execute-within- html-response-to-ajax-request) – clockworkgeek 2011-03-11 01:26:13

+0

好吧,div自動隱藏,當data.php自己打開時。但它仍然不會自動隱藏,當使用AJAX打開時:( – hiroki 2011-03-11 01:39:45

+0

@clockworkgeek非常感謝你的指出,我需要在我的Ajax.Updater函數中使用evalScripts:true參數。 – hiroki 2011-03-11 01:44:48

回答

0

Hiroki,

我建議在Ajax方法中傳遞一些參數,並在data.php中使用一些邏輯來選擇要發送的數據,以下是我如何通過原型調用傳遞參數的示例。

new Ajax.Updater('targetDiv', 'data.php', { parameters: { myParam1: 'hello', myParam2: 'world'} });

進入你的data.php文件來創建一些邏輯。請注意,在默認情況下,原型的方法來發送params爲POST,但是你可以隨時改變,通過在相同的Ajax.Updater調用聲明method: 'get',就像這樣:

new Ajax.Updater('targetDiv', 'data.php', { method: 'get', parameters: { myParam1: 'hello', myParam2: 'world'} });

0

退房原型的AJAX部分API。其中,它講述了一個可以使用的稱爲'evalJS'的選項,您可以將其設置爲true。當你設置這個選項時,updater返回的任何javascript都將被評估並正常運行。

function ajaxUpdater(id, url) { 
    new Ajax.Updater('targetDiv', 'data.php', { 
     asynchronous: true, 
     evalJS: true 
    }); 
}