cakephp元素和Ajax更新

时间:2011-05-24 08:37:04

标签: ajax cakephp helper elements

这是我想要实现的目标......

我有一个索引视图,其中我使用了ajax帮助器而不是cakephp,而是http://www.cakephp.bee.pl/中的外部辅助器

我使用这个助手成功创造了一个手风琴。

现在在手风琴里面我有一个addbutton,它通过ajax提交一个表单。

我想做的是当我提交ajax表格时。我还想更新手风琴。 现在手风琴也是通过使用ajax助手创建的。

这可以在没有页面刷新的情况下完成

ajax提交表单代码:

    <div class="qnotesform">
<?php echo $this->Form->create('Qnote');?>
<ul class="qnotelist">
<li><?php   echo $this->Form->input('Qnote.subject', array('label'=>'Title', 'rows' => '1')); ?></li>
<li>    <?php   echo $this->Form->input('Qnote.body', array('label'=>'Header', 'rows' => '1')); ?></li> 
<?php   echo $this->Form->hidden('Qnote.user_id', array('value'=>Authsome::get('id'))); ?>
<?php   echo $this->Form->hidden('Step.0.user_id', array('value'=>Authsome::get('id'))); ?>
<li><?php   echo $this->Form->input('Step.0.body', array('label'=>'Steps' ,'class' => 'step',  'rows' => '1')); ?></li>
</ul>

<?php echo $ajax->submit(
'Submit', array(
'url' => array(
'controller'=>'qnotes',
'action'=>'add')
)); 

我怎样才能做到这一点。 有人可以指出我正确的方向

我要澄清的另一件事是。如果我想要一个页面工作。而且一切都很糟糕 在没有页面刷新的情况下使用的操作。

是否有人为上述情况提供了一个有效的例子。 或者让我简单一点。 如何在不刷新页面的情况下刷新div。

解决方案:

    <?php echo $ajax->submit('Submit', array(
'url'=> array(
'controller'=>'qnotes',
'action'=>'add'),
'update'=>'leftdiv',
'after'=>'$("#accordion").accordion({autoHeight: false, collapsible: true , header: "h3"});alert("after");',
)); 

然而现在我现在面临另一个问题, 我正在更新手风琴,一切正常,但一旦更新手风琴。 手风琴失去了它的风格,停止了工作。 我只看到链接。任何想法如何。

1 个答案:

答案 0 :(得分:1)

似乎提交方法数组中的一个选项是'complete',它应该允许你触发一个js函数来更新你的手风琴:

<?php echo $ajax->submit(
'Submit', array(
'url' => array(
'controller'=>'qnotes',
'action'=>'add',
'complete' => 'updateAccordian(request.responseText)')
));

reuqest.responseText将包含来自您的控制器/操作的响应。

HTH