CakePHP 1.2.x - Ajax分页'下一页'不会更新,坚持2

Sim*_*les 5 php cakephp cakephp-1.2

美好的一天,

我非常适合使用CakePHP 2.x,但我现在不得不在更老的CakePHP 1.2.x应用程序上工作.

我已经实现了一个Ajax分页,它对第一页完全正常,但是"下一页"链接永远不会超过第2页.所以即使加载了第2页,我的分页器的下一个链接仍然是'page:2'.

不同之处在于我的paginator链接是GLOBAL.我没有加载分页链接作为新DOM注入HTML的一部分.分页器链接位于我的ajax容器之外,并且在单击时将内容加载到容器中.paginator链接未加载到该容器中.

我很清楚CakePHP 2.x使用该$this->Js->WriteBuffer();方法打印出核心JS,据我所知,使用(以及其他)来更新分页链接.

我知道CakePHP 1.2.x没有这样的方法.

任何人都可以对此提出一些看法或提出一些意见吗?

我包含的组件和帮助:

var $components = array('RequestHandler');
var $helpers = array('Javascript', 'Html', 'Form', 'Paginator');
Run Code Online (Sandbox Code Playgroud)

我的分页:

$paginator->next('<h3>Next Page </h3>',array('escape'=>false));
Run Code Online (Sandbox Code Playgroud)

我有这些ajax加载的Ajax视图和Ajax布局.Ajax视图只包含我想要加载的内容,字面上只是循环.ajax布局只有一行<?php echo $content_for_layout ?>

我把它放在我的ajax布局的末尾,但无济于事:

<?php echo $javascript->writeEvents(); ?>
Run Code Online (Sandbox Code Playgroud)

任何帮助都将受到巨大的赞赏.

西蒙


更新:在head和Ajax视图代码中添加JS代码

头装JS:

$javascript->link('jquery-ui-1.8.13.custom.min.js', false);
$javascript->link('scrollads.js', false);
$javascript->link('jquery.form.js', false);
$javascript->link('jquery.form-defaults.js', false);
$javascript->link('jquery.jplayer.min.js', false);
$javascript->link('jquery.sparkline.min.js', false);
Run Code Online (Sandbox Code Playgroud)

$ javascript-> link('jquery.cookie.js',false); $ javascript-> link('jquery.tweet.js',false); $ javascript-> link('flowplayer.min.js',false); $ javascript-> link('jquery.validate.min.js',false); $ javascript-> link('coin-slider.min.js',false); $ javascript-> link('jquery.thslide.min.js',false); $ javascript-> link('jquery.barousel.min.js',false); $ javascript-> link('behaviour.js',false); echo""; echo""; echo"jQuery.noConflict();";

echo $asset->scripts_for_layout();
Run Code Online (Sandbox Code Playgroud)

Ajax查看文件:

<?php foreach ($galleries as $gallery): ?>
                <div class="albumcontainer-wrapper">
                    <div class="albumcontainer-top"></div>
                        <div class="albumcontainer">
                            <a href="<?php echo Router::url('/gallery_images/index/'.$gallery['Gallery']['id']); ?>">
                                <?php echo $html->image($gallery['GalleryImage'][0]['Image']['default']['path_adjusted']); ?>
                            </a>
                            <h3><?php echo $gallery['Gallery']['title']; ?></h3>
                        </div>
                    <div class="albumcontainer-bottom"></div>
                </div>
            <?php endforeach; ?>
            <?php echo $javascript->WriteEvents(true); ?>
Run Code Online (Sandbox Code Playgroud)

这是我将ajax加载的视图附加到现有内容而不是替换它的方式:

$paginator->options(
                    array(
                        'update' => 'ajaxAppendGalleries', 
                        'indicator' => false,
                        'evalScripts' => true,
                        'complete' => 'var tmp = jQuery("#ajaxAppendGalleries").html(); jQuery("#galleryContainer").append(tmp); tmp = null; jQuery("#ajaxAppendGalleries").empty();',
                        )
                    ); 
Run Code Online (Sandbox Code Playgroud)

yos*_*ssi 0

这将是伪的,因为我不熟悉 cake 1.2
,尽管我认为其中一些是微不足道的,但这些都是应该“检查列出”的点

在控制器的功能中:
确保您发送的 json 内容具有空布局且没有调试信息。

在视图中,创建与此类似的 json 结构:

data{
  paginationHtml: {htmlContent: /* here comes the output of the navigation-creation-function of the  paginator-helper*/, 
  anyOtherContent: ""},
  pageContentHtml: /* the iteration that print out the paged content itself */
}
Run Code Online (Sandbox Code Playgroud)

在原始页面中使用jquery加载内容并替换innerHTML分页数据,以及分页导航链接的内容。