2011-04-08 87 views
0

我有一個表單上的activeCheckBox,我想更改複選框值時更新數據庫。我正在閱讀關於activeCheckBox的CHTML類的文檔,但我真的不知道從哪裏開始。任何人都可以提供一個如何使用ajax更新或任何指向示例的鏈接來設置activeCheckBox的例子嗎?更新activeCheckBox的值更改數據庫,Yii框架

編輯
也許應該提到,我剛開始用Yii的工作,並具備PHP和JavaScript的經驗。

回答

2

也許這樣的事情?在您的控制器

AJAX動作:

public function actionCheckboxUpdate() { 
    if(Yii::app()->request->isPostRequest) 
    { 
    if(isset($_POST['my_checkbox'])) 
    { 
     // save value to DB 
    } 
    } 
    else 
    throw new CHttpException(400, 
     Yii::t('app', 'Invalid request. Please do not repeat this request again.')); 
} 

Yii的複選框:

<?php echo CHtml::checkbox('my_checkbox', false, array(
    'submit'=>'mycontroller/checkboxUpdate', 
    'params'=> array('my_checkbox'=>'1') 
)); ?> 

取決於你想通過你可能需要更大膽的嘗試,像添加自己的jQuery的事件偵聽器的PARAMS它會將複選框的實際值發佈到您的ajax動作,但我希望這會讓您開始。

欲瞭解更多信息,請參閱CHtml::checkBox(和Yii用於簡化AJAX的CHtml::clientChange參數)的文檔。

這裏有一些其他的文章,將是很好的閱讀,以及:

祝你好運!

0

創建複選框像往常一樣:

<?php 
    echo CHtml::checkbox('my-checkbox', false, array('id'=>'my-checkbox-id')); 

然後創建一個jQuery事件偵聽器

<?php 
    Yii::app()->clientScript->registerScript('my-event-listener'," 
    $('#my-checkbox-id').change(function(){ 
     $.post(
      'controller/action',     //url 
      {         //data 
       myval: $(this).is(':checked') 
      }, 
      function(data){ 
       alert(data);     //callback 
      }); 
     }); 
    ");