Ackley  
          
              
                July 8, 2014,  9:42am
               
              1 
           
         
        
          How can I have two save buttons in a create/update form? Says one button "Save" when clicked will save and render _form.php again while another button "Save & Close" when clicked will redirect user to admin cgridview. Thank you!
Currently by default, what Gii generates is something like this:
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
and after create/save I render again the same form like this:
<?php $this->renderPartial('_form', array('model'=>$model)); ?>
in both create.php/update.php.
         
        
           
         
            
       
      
        
          
          
            mmbalaa  
          
              
                July 8, 2014, 10:47am
               
              2 
           
         
        
          Try this code
_form.php 
	<div class="row buttons">
		<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
        <?php echo CHtml::hiddenField('save_close',0);?>
        <?php echo CHtml::submitButton('Save & Close',array('class'=>'save_close_btn')); ?>
	</div>
<script type="text/javascript">
$(document).ready(function(){
    $(".save_close_btn").on("click",function(){
        $("#save_close").val(1)
    });
});
</script>    
In controller create/update action 
if($model->save()){
    if(isset($_POST['form_name']['save_close'])){
      if($_POST['form_name']['save_close']==0)
        $this->redirect(array('view','id'=>$model->id));
      else
        $this->redirect(array('admin'));
    }
}
 
        
           
         
            
       
      
        
          
          
            Ackley  
          
              
                July 8, 2014, 11:59am
               
              3 
           
         
        
          Thank you very much, mbala. I got the logic, will try to implement like you suggest. Thanks again!
         
        
           
         
            
       
      
        
          
          
            joblo  
          
              
                July 8, 2014,  3:13pm
               
              4 
           
         
        
          You don’t need javascript for this.
The name of a button will be submitted as POST key too, so you only have to assign the button name.
Do a var_dump($_POST) to see the incoming data.
View:
...
echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save');
echo CHtml::submitButton('Save & Close',array('name'=>'save_close_btn')); 
Controller
...
//var_dump($_POST);
...
if($model->save()){
    if(isset($_POST['save_close_btn'])) //redirect only if save & close clicked
     $this->redirect($this->createUrl('admin'));
}
$this->renderPartial('_form', array('model'=>$model));
 
 
        
           
         
            
       
      
        
          
          
            Ackley  
          
              
                July 8, 2014,  5:24pm
               
              5 
           
         
        
          Beautiful! Big thank, Joblo!