2013-09-29 21 views
0

我是Yii框架的新手。我必須在我的表單中創建三個按鈕(update.php)。即(保存,批准,拒絕)。我在表單中使用了以下字段。如何根據提交按鈕更新字段 - Yii

<?php 
/* @var $this MessageTemplateController */ 
/* @var $model MessageTemplate */ 
/* @var $form CActiveForm */ 
?> 

<div class="form"> 

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'message-template-form', 
    'enableAjaxValidation'=>false, 
)); ?> 



    <?php 

     echo $form->errorSummary($model); 
     ?> 
    <div class="row"> 
     <?php //$model->ReviewedDate=date('Y-m-d H:i:s');?> 
     <?php echo $form->labelEx($model,'ReviewedDate'); ?> 
     <?php echo $form->textField($model,'ReviewedDate',array('value'=>'0000-00-00 00:00:00','readonly' => true)); ?> 
     <?php echo $form->error($model,'ReviewedDate'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'SmsText'); ?> 
     <?php echo $form->textArea($model,'SmsText',array('size'=>60,'maxlength'=>255)); ?> 
     <?php echo $form->error($model,'SmsText'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'UpdatedDate'); ?> 
     <?php echo $form->textField($model,'UpdatedDate'); ?> 
     <?php echo $form->error($model,'UpdatedDate',array('value'=>date('Y-m-d H:i:s'),'readonly' => true)); ?> 
    </div> 
    <div class="row"> 
    <?php echo $form->labelEx($model,'Approved'); ?> 
      <?php echo $form->hiddenField($model, 'Approved'); ?> 
    <?php echo $form->error($model,'Approved'); ?> 
</div> 
<div class="row"> 
<div class="row"> 
      <?php echo $form->labelEx($model_al, 'username'); ?> 
      <?php $identity=Yii::app()->user->name;?> 
     <?php echo $form->textField($model_al, 'username',array('value'=>$identity,'readonly' => true), array('size' => 60, 'maxlength' => 250)); ?> 
     <?php echo $form->error($model_al, 'username'); ?> 
     <div> 


     <div class="row">   
     <?php echo $form->labelEx($model_al, 'updatedtime'); ?>    
     <?php echo $form->textField($model_al, 'updatedtime',array('value'=>date('Y-m-d H:i:s'),'readonly' => true), array('size' => 60, 'maxlength' => 250)); ?> 
     <?php echo $form->error($model_al, 'updatedtime'); ?> 
     <div> 

     <div class="row">   
     <?php echo $form->labelEx($model_al, 'comments on approval/rejection'); ?>    
     <?php echo $form->textField($model_al, 'comments',array('size' => 60, 'maxlength' => 250)); ?> 
     <?php echo $form->error($model_al, 'comments'); ?> 
     <div> 

    <div class="row buttons"> 


      <?php echo CHtml::submitButton('Save', array('name' => 'save')); ?> 
       <? echo '&nbsp;&nbsp;&nbsp;'; ?> 
<?php echo CHtml::submitButton('Accept', array('name' => 'accept')); ?> 
       <? echo '&nbsp;&nbsp;&nbsp;'; ?> 
<?php echo CHtml::submitButton('Reject', array('name' => 'reject')); ?> 

    </div> 

<?php $this->endWidget(); ?> 

</div><!-- form --> 

現在我已經創建了三個buttons.There是一個名爲上述形式approved場。 我想這個行動時,我在下面的按鈕點擊發生:
1. Save - All fields have to be saved but not approved(keep it as default).
2. Accept - All fields have to be saved with Approved changing to 1 in database.
3. Reject - All fields have to be saved with Approved changing to 0 in database.

我怎樣才能做到這一點。

EDit 我在控制器中添加了以下內容。

public function actionUpdate($id) 
    {  
       $model_mt=new Messagesintable; 
       $model_al=new AuditLogin;     
     $model=$this->loadModel($id); 

     // Uncomment the following line if AJAX validation is needed 
     // $this->performAjaxValidation($model); 

       if(isset($_POST['MessageTemplate']) && isset($_POST['AuditLogin'])) 
        {      


        $model->attributes=$_POST['MessageTemplate'];          

        list($name,$mobile,$email)=retrieve_persondetails($id); 

         if($model->save()) 
         { 
         $model_al->attributes=$_POST['AuditLogin'];      

              if ($model_al->save()) 
         $this->redirect(array('admin','id'=>$model->Id)); 
         } 
        } 
$this->render('update',array(
'model'=>$model, 

)); 
} 

回答

1

您可以檢查是否該點擊提交按鈕與這些條件裏面寫你的行動。

if($_POST) { 

    if (isset($_POST['Save'])) { 
     // your code here 
    } 

    if (isset($_POST['Accept'])) { 
     // your code here 
    } 

    if (isset($_POST['Reject'])) { 
     // your code here 
    } 
}