2010-10-14 99 views
1

我有一個用戶模塊,用戶可以從配置文件頁面設置他們的狀態消息(tweet)。Cakephp:通過Ajax保存表格

alt text

當有人點擊分享它應該去的動作並保存狀態信息。我不確定如何在CakePHP中執行此操作。

我想用jQuery。如果你能指點我正確的文件。這將是很大的幫助

我是新來的Ajax。

回答

2

CakePHP有一個Js Helper默認使用JQuery庫。 您正在查找的方法是submit()方法。

一個示例用法是:用HTML從控制器返回

<?php echo $form->create('Tweet'); ?> 
    <!-- form elements --> 
    <?php echo $this->Js->submit('Share', 
           array(
            'update' => '#content' 
           ) 
          ); ?> 

元件#content的內容將被改變。

在上述示例中將提交ajax表單的操作中,add()可能需要在檢測到ajax請求時將佈局更改爲ajax。您可以使用isAjax()方法和控制器的$layout屬性來執行此操作。

+0

我討厭劫持一個討論,但我與Js助手有問題。 (拉蒙,你上週試圖回答我的問題http://stackoverflow.com/questions/3901906/how-to-use-js-submit-in-cakephp)。 「共享」在submit()選項數組中是指什麼?這是否適合你Harsha? – 2010-10-15 17:00:10

+0

@Logic藝術家:謝謝你指出。我已更正了該片段。 – 2010-10-15 17:15:48

+0

@logic nope我無法得到它的工作。 – 2010-11-12 09:30:05

1

通過ajax提交表單的方式與使用CakePHP時完全相同。如果是我,這是我願意做...

筆者認爲:

<?php echo $this->Html->script( 
    array('vendors/jquery.min', 'customjs') 
    , array('inline' => false, 'once' => true) 
) ?> 

<?php echo $this->Form->create(...) ?> 
    ... your form content here ... 
<?php echo $this->Form->end('Share') ?> 

在自定義JavaScript文件(/js/custom.js):

$(function() { 
    $('#your-form').submit(function() { 
    // make your ajax call 
    $.post(...); 

    return false; // prevent a new request 
    }); 
}); 

最後,創建一個新的控制器和/或處理您的ajax呼叫請求的URL的操作。這些僅僅是亮點,但它們說明了關鍵問題的關鍵分佈:

  1. 包含必要的JS文件,以便您的視圖可以訪問它們。
  2. 附加由從事件處理程序返回false履行定期提交Ajax調用上的document.ready提交事件處理程序(不內聯)
  3. 防止形式。

希望有所幫助。

+0

感謝羅布。將嘗試它,並回到你:D – 2010-10-14 12:17:00