2010-08-31 25 views
0

Bonjour Je souhaite définir un formulaire form_radio() comme champ obligatoire dans le codeigniter. Des idées sur la façon de le faire?Définition des règles de validation du formulaire pour form_radio()

ceci est ma forme:

  echo form_radio('radio','earing',FALSE)."earings"; 
      echo form_radio('radio','bag',FALSE)."bag"; 
      echo form_radio('radio','bracelet',FALSE)."bracelet"; 
      echo form_close(); 

bien sûr que seul l'un d'entre eux doit être déposé chaque fois ...

merci à l'avance!

Répondre

0

Vous devez ajouter une validation à l'événement de soumission du formulaire. voir exemple ci-dessous:

<form action="page.php" method="post" onsubmit="return isValid(this);"> 
    <fieldset> 
     <legend>Radio Buttons</legend> 

     <input type="radio" value="1" name="myRadio" />Selection 1<br /> 
     <input type="radio" value="2" name="myRadio" />Selection 2<br /> 
     <input type="radio" value="3" name="myRadio" />Selection 3<br /> 
    </fieldset> 

    <input type="submit" name="submitit" value="Submit" /> 
    <input type="reset" name="reset" value="Clear" /> 
</form> 

<script type="text/javascript"> 

    function isValid(frm) { 
     // Initialize return value 
     var isChecked = false; 

     // Check if radio was selected 
     for (var i=frm.myRadio.length-1; i > -1; i--) { 
      if (frm.myRadio[i].checked) { 
       isChecked = true; 
       break; 
      } 
     } 

     if (isChecked == false) { 
      alert("You must select a radio button"); 
      // Data is invlaid, 
      return false; 
     } 

     // Everything is ok, continue with form submit 
     return true; 
    } 
</script> 
+0

avec javascript "Merci! Je vais vérifier ... mais j'espère vraiment que quelqu'un peut m'aider à le résoudre sur codeigniter parce qu'il ne peut pas être si difficile Je semble juste avoir bloqué! Voici les règles: http://codeigniter.com/user_guide/libraries/form_validation.html#validationrules – rabidmachine9

0

Une façon d'éviter besoin de valider les boutons radio est d'avoir simplement une cochée par défaut. De cette façon, vous n'avez même pas à vous inquiéter si l'utilisateur n'a pas sélectionné un bouton radio car une fois que l'un est coché, il y en aura toujours un coché. Cela ne répond pas à la question spécifique sur la façon de valider les formulaires dans CodeIgnitor (dont je ne connais malheureusement pas la réponse), mais cela peut vous être utile pour atteindre votre objectif global.

+0

Merci, mais j'ai vraiment besoin de la forme à valider ... – rabidmachine9

0

Votre code doit être envoyé au contrôleur si vous souhaitez utiliser la validation.

class Form extends Controller { 

    function index() 
    { 
     $this->load->helper(array('form', 'url')); 
     $this->load->library('form_validation'); 

     $this->form_validation->set_rules('radio', 'Product', 'required'); 

     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('myform'); 
     } 
     else 
     { 
      $this->load->view('formsuccess'); 
     } 
    } 
} 

En vous avez vraiment pas besoin de validation pour la radio. Lorsque vous générez le bouton radio, sélectionnez-en un et il aura toujours une valeur. Essayez-le comme ceci, cela devrait fonctionner mieux. Il va générer les boîtes de radio avec un 1er cochée par défaut si la valeur pour les radios n'est pas définie:

echo form_radio('radio','earing', set_radio('radio', 'earing', TRUE))."earings"; 
echo form_radio('radio','bag', set_radio('radio', 'bag'))."bag"; 
echo form_radio('radio','bracelet', set_radio('radio', 'bracelet'))."bracelet"; 
echo form_close(); 
0

La façon dont je l'ai résolu jusqu'à présent (et il semble ok pour moi) ... est par une simple si la déclaration dans mon contrôleur comme ça:

if($this->input->post('upload') && $this->input->post('radio')){ 
      $this->Gallery_model->do_upload(); 
      } 

mais je me demandais s'il y a un moyen en utilisant la classe de validation de formulaire, donc je ne vais pas marquer plus juste cela comme une réponse ...