2013-03-28 24 views
1

目的複選框提交:一個表,其中的人在每一行,和複選框,點擊複選框 提交的形式,現在一種形式中爲每個複選框。Ajax表單通過點擊使用CakePHP 2.0

http://iufm-web.ujf-grenoble.fr/crip/images/extrait_tableau_dossiers.png

我已經成功與CakePHP的2.0,但每次提交重新加載整個頁面(有多少行?或許幾百,最大的是另外一個問題)

我希望它是非常反應性的,所以我想用ajax來重新加載只點擊的行。

我試着使用Js->提交,但它不是複選框兼容。

我不知道我應該使用每種形式的作用,作爲控制器的動作會重新加載或重定向的頁面。

編輯:我已經按照戴夫的建議,並在片段觀點(即填寫表格行):

echo $this->Form->input('recu',array('type'=>'checkbox', 
        'value'=>true, 
        'id'=>'recu'.$ilignetot, 
        'hiddenField'=>true, 
        'div' =>false, 
        'label' =>false, 
         'checked'=>$user['User'['recu'], 
       ))."\n"; 

$this->Js->get('#recu'.$ilignetot)->event('change', 
    $this->Js->request(array(
     'controller'=>'users', 
     'action'=>'admin_dossier_recu2' 
     ), array(
     'update'=>'#'.$lineid, 
     'async' => true, 
     'method' => 'post', 
     'dataExpression'=>true, 
     'data'=> $this->Js->serializeForm(array(
      'isForm' => false, 
      'inline' => true 
      )) 
     )) 
    ); 

在控制器動作admin_dossier_recu2,我保存表單,並返回片段,並指定:

 $this->layout = 'ajax'; 

感謝您的提示,我以前的嘗試是錯誤的。不幸的是,我的解決方案一點兒也不工作,IE8,但它與Firefox和Chrome效果很好。現在,我想有一個視覺效果,爲用戶瞭解實際保存數據,但也許我應該問另外一個問題。

回答

0

使用javascripts onchange() event並將它調用,它所有的AJAX功能。

你也可以做一些邏輯來確定在你做ajax之前是否選中了所選的複選框等等等等