だから、非常に長い時間と多くの面倒なアイブの後、ついに私のajaxページネーションが機能するようになりました(一種の)
今私のhtmlは次のようになります:
<?php
$this->Paginator->options(array(
'update' => '#content',
'evalScripts' => true,
));
?>
<div class="portlet box green Report index" id="content">
<div class="portlet-title">
<div class="caption"><i class="icon-globe"></i>Report Summary</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table class="table table-striped table-bordered table-hover table-full-width"
<thead>
<tr>
<th><?php echo $this->Paginator->sort('Offer.name','Offer'); ?></th>
<th><?php echo $this->Paginator->sort('Stat.clicks','Clicks'); ?></th>
<th><?php echo $this->Paginator->sort('Stat.conversions','Conversion'); ?></th>
<th><?php echo $this->Paginator->sort('Stat.payout','Payout'); ?></th>
<th><?php echo $this->Paginator->sort('Stat.ltr', 'What-isThis?'); ?></th>
<th><?php echo $this->Paginator->sort('Stat.cpc','Expected E-CPC'); ?></th>
</tr>
</thead>
<tbody class="report_data">
<?php foreach ($table['Report']['data']['data'] as $res): ?>
<tr>
<td><?php echo h($res['Offer']['name']); ?> </td>
<td><?php echo h($res['Stat']['clicks']); ?> </td>
<td><?php echo h($res['Stat']['conversions']); ?> </td>
<td><?php echo h($res['Stat']['payout']); ?> </td>
<td><?php echo h($res['Stat']['ltr']); ?> </td>
<td><?php echo h($res['Stat']['cpc']); ?> </td>
</tr>
<?php endforeach; ?>
</tbody>
<ul>
<?php if ($this->Paginator->hasPrev()): ?>
<li><?php echo $this->Paginator->first(__('First')) ?></li>
<li><?php echo $this->Paginator->prev(__('Prev'), array(), null, array('class' => 'prev disabled')) ?></li>
<?php
endif;
echo $this->Paginator->numbers(array('currentTag' => 'span', 'currentClass' => 'active',
'separator' => false, 'tag' => 'li', 'modulus' => 5));
if ($this->Paginator->hasNext()):
?>
<li><?php echo $this->Paginator->next(__('Next'), array(), null, array('class' => 'next disabled')) ?></li>
<li><?php echo $this->Paginator->last(__('Last')) ?></li>
<?php endif ?>
</table>
</ul>
</div>
</div>
</div>
<?php echo $this->Js->writeBuffer(); ?>
悲しいことに、私はあなたに写真を見せることができません (それは私が評判に欠けていると言っています) しかし、私がページネーションを押すと、サイトのコンテンツが div ブロックに入れられ、ビューがめちゃくちゃになることを意味しているようです!
なぜこれを行っているのか、どうすれば修正できるのか、誰か教えてもらえますか?
id='content' を別の div または table ブロックに移動しようとしましたが、成功しませんでした
ケーキ バージョン 2.3
マイ インデックス アクション
public function index()
{
if($this->request->is('ajax'))
{
$this->layout('ajax');
}else{
$this->layout = 'client_layout';
}
$startDate = $this->request->data['startDateTime'];
$endDate = $this->request->data['endDateTime'];
if($startDate == null || $startDate == '' ){
$startDate = date('y-m-d');
$endDate = date('y-m-d');
}
array_push($this->paginate['conditions']['Stat.date']['values'], $startDate, $endDate);
$this->set('table', $this->paginate());
}
アップデート
さて、コントローラーに次を追加しました:
if ($this->RequestHandler->isAjax()) {
$this->autoLayout = true;
$this->autoRender = true;
$this->layout = 'ajax';
}else{
$this->layout = 'client_layout';
}
これは助けになりましたが、本来あるべき 100% ではありません。テーブルの上に div ブロックを追加しています。これは、次のような HTML です。
<div id="updateTable">
<div class="portlet box red"> <-- VERY BAD!!
<div class="portlet-title">
<div class="portlet-body">
</div>
<div id="updateTable">
IDもupdateTableに変更したことに注意してください