尝试使用CAKEPHP使用jquery加载div中的内容

时间:2012-07-16 14:51:19

标签: php jquery cakephp

好的,我一直在寻找一段时间......而且当使用帮助器将内容加载到div时,我无法找到与jquery和cakephp相关的内容$ this-> Js-> link ... so我决定在这个令人敬畏的网站上发布我的问题......我的第一个问题,它是如此愚蠢(我猜)。

所以...机制工作正常,我的意思是..它将内容加载到一个名为“算法”的div中,但现在我尝试添加一些效果(fadein),我无法找到正确的语法!我是全新的蛋糕......只用了1个月就可以了。

如何在显示这个该死的div时添加“fadeIn”效果?我已经尝试了很多东西,但到目前为止,没有任何东西可以使div加载内容与fadein效果无关......

echo $this->Js->link('Categoria 1',  array('controller' => 'Categories', 'action' => 'categorias1'), array('update' => '#algo'));

这完美地加载了我在div中的类别1上的一堆图片,我问......我该怎么做才能添加淡入效果?我添加了一些疯狂的东西,看看它们是否有效......但是......没有运气

我甚至试过这个疯狂的人:

echo $this->Js->link('Categoria 1',  array('controller' => 'Categories', 'action' => 'categorias1'), array('update' => '#algo', array('effect' =>array('fadeIn', array('speed' => 'slow'), true))));

任何帮助都会被贬低!没人用cakephp显示div的例子..或者至少我找不到适合我需要的那个!

顺便说一句很棒的网站!这些年来它给了我很多帮助!

2 个答案:

答案 0 :(得分:1)

我终于让自己完成了我想要做的事情,我想和你们分享我的所作所为:

echo $this->Js->link('categoria 1', array('controller' => 'Categories', 'action' => 'categorias1'),array('update' => '#categorias', 'evalscripts' => true, 'before' => $this->Js->get('#algo,#categorias2')->effect('fadeOut', array('buffer' => false)), 'complete' => $this->Js->get('#categorias')->effect('fadeIn', array('buffer' => false))));                                                                                              

这段巨大的代码正在做我期望的事情,我还在我的jquery帮助器中添加了一些编辑,以便将它们传递给多个div,这样我就可以同时刷新它们。

如果你们想要破解你的助手,请输入以下代码:

饼/库/视图/助手/ jquery_engine.php

找到这一行:

$success .= $this-jQueryObject . '("' . $options['update'] . '").html(data);';

并将其替换为:

if(is_array($options['update'])){
                $success .= 'var temp = ' . $this->jQueryObject . '("     <div/>").html(data);';
                foreach($options['update'] as $divId){
                    $success .= $this->jQueryObject . '("' . $divId . '").html('     . $this->jQueryObject . '("' . $divId . '", temp).html());';
                }
            } else {


            $success .= $this->jQueryObject . '("' . $options['update'] .     '").html(data);'; //linea que ya estaba

            }
            //termina agregado

答案 1 :(得分:0)

正如Dunhamzzz所建议的那样,我手工编写了所有jQuery,并且从不使用帮助程序。似乎没有任何意义。

一个有用的提示,将基本URL和任何其他有用的蛋糕变量作为javascript变量传递到您的页面中。将其添加到您的布局:

<?php 
$baseUrl = Router::url('/');

echo $this->Html->scriptBlock(<<<EOJS
var baseUrl = '{$baseUrl}';
EOJS
); ?>