2011-05-24 102 views
0

這裏就是我想實現...CakePHP的元素和Ajax更新

我有,我已經使用了AJAX輔助不CakePHP的一個,但是從http://www.cakephp.bee.pl/

外部一個索引視圖我已經成功地使用這個幫手創建了一個手風琴。

現在在手風琴裏面我有一個通過ajax提交表單的addbutton。

我想要做的是當我提交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') 
)); 

我怎樣才能做到這一點:

可以刷新

AJAX提交表單代碼這將無需頁面完成。 有人可以請我指出正確的方向

另一件我想清楚的是。如果我想要工作一頁。並且所有crud 動作都將在沒有頁面刷新的情況下使用。

有沒有人有上述senarios的工作示例。 或讓我簡單。 如何在不刷新頁面的情況下刷新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

看來的方法提交的陣列中的一個選項是「完整的」,這應該讓你觸發一個js函數,將更新您的手風琴:

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

的reuqest.responseText將包含來自您的控制器/操作的響應。

HTH

+0

謝謝。以及我設法讓那個Ajax更新手風琴...使用下面的代碼。因爲別人需要引用它。 已更新問題 – Vwake 2011-05-27 00:49:54

+0

但現在我現在面臨另一個問題,我正在更新手風琴,一切正常,但只要更新手風琴。手風琴失去了風格並停止了工作。我只看到鏈接。任何想法如何。 – Vwake 2011-05-27 00:58:54