2011-03-11 63 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 
    }); 
}