2011-04-08 86 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 
      }); 
     }); 
    ");