2016-08-04 36 views
0
<?php echo CHtml::checkBoxList('checkbox_list_name', '', array(
'Users' => 'All Users', 
'Claim' => 'Claim Request', 
'Business' => 'Add Business' 
), array('id'=>'checkbox-list-id','class'=>'checkboxlist', 'required')). "<br>"; ?> 

Ich habe den folgenden Code geschrieben, um ein Kontrollkästchen zu machen, und ich möchte es zu einem Pflichtfeld wie in Html machen.Wie erstelle ich ein benötigtes Feld mit CHtml ohne Modell in Yii?

Antwort

0

Hallo Sie können eine javascriptfunction hinzufügen Formularübermittlung zu verhindern, aber dies wird scheitern, wenn Javascript deaktiviert ist, so dass Sie sowohl javascript und server side validation verwenden sollten. Definieren

**Server Side validation** 

1) ein variable in Ihrer model (virtuellen Variable)

Model.php

class Model extends CActiveRecord 
{ 
    /** 
    * @return string the associated database table name 
    */   
     public $checkbox_list_name; 

2) Definieren Sie es in sicheren Regeln in Ihrem Modell

public function rules() 
    { 
array('checkbox_list_name','safe'), 
} 

3) in Ihrer Form.php

<?php echo $form->checkBoxList($model,'checkbox_list_name', array(
'Users' => 'All Users', 
'Claim' => 'Claim Request', 
'Business' => 'Add Business' 
), array('id'=>'checkbox-list-id','class'=>'checkboxlist', 'required')). "<br>"; ?> 

    <?php echo $form->error($model,'checkbox_list_name'); ?> 

4) In YourController.php

Überprüfen Sie, ob die Kontrollkästchen werden geprüft oder nicht

public function actionYouraction() { 
     $model = new Model(); 
     $this->performAjaxValidation($model); 

     if (isset($_POST['Model'])) { 

      if($_POST['Model']['checkbox_list_name'] == ''){ 
       $model->addError('checkbox_list_name', 'Select At least one!!!'); // this will through error if checkbox is not selected     
      }else{ 

      $model->attributes = $_POST['Model']; 
      $model->save(); 
     } 
     $this->render('view', array(
      'model' => $model, 
     )); 
    } 

Javascript-Methode - dies wird die Länge der Textfelder zählen und falsche retun wenn nicht mindestens ausgewählt ein

<script type="text/javascript"> 
    $('#user-form').submit(function() {// relace user-form id with your CActiveRecord form id 
    if(!($('input[type="checkbox"]:checked').length)) { 
    alert("Select at least one!!!"); 
    return false; 
} 
    return true; 
}); 

    </script> 
+0

danke !!!! sehr ausführliche Antwort. – lakshay