Bonjour,
j'ai un problème avec le traitement des boutons radio !!
Voici un extrait du code de ma page inscription :
Code :
- <tr>
- <?php
- function getSex($sexe)
- {
- $default = '';
- if (isset($_POST['sexe']))
- {
- if ($_POST['sexe'] == $sexe)
- {
- $default='selected="selected"';
- }
- }
- return $default;
- }
- ?>
- <td><label for="sexe">Sexe*</label></td>
- <td><input type="radio" name="sexe" value="masc" <?php echo getSex('masc'); ?> checked="checked" /> Masc
- <input type="radio" name="sexe" value="fem" <?php echo getSex('fem'); ?> /> Fem </td>
- </tr>
|
Maintenant un extrait de ma page : traitement-inscription :
Code :
- // Sexe
- if(isset($_POST['sexe']))
- {
- $sexe = trim($_POST['sexe']);
- $sexe_result = checkSex($sexe);
- if($sexe_result == 'sexefalse')
- {
- $_SESSION['sexe_info'] = '<span class="erreur">Le sexe '.htmlspecialchars($sexe, ENT_QUOTES).' est incorrect.</span><br/>';
- $_SESSION['form_sexe'] = '';
- $_SESSION['erreurs']++;
- }
- else if($sexe_result == 'ok')
- {
- $_SESSION['sexe_info'] = '';
- $_SESSION['form_sexe'] = $sexe;
- }
- else if($sexe_result == 'empty')
- {
- $_SESSION['sexe_info'] = '<span class="erreur">Vous n\'avez pas entré de sexe.</span><br/>';
- $_SESSION['form_sexe'] = '';
- $_SESSION['erreurs']++;
- }
- }
- else
- {
- header('Location: ../index.php');
- exit();
- }
|
Et enfin la fonction checkSex qui est appelé dans traitement-inscription :
Code :
- function checkSex($sexe)
- {
- if($sexe == '') return 'empty';
- else if(!preg_match('#(masc|fem)#', $sexe)) return 'sexefalse';
- else return 'ok';
- }
|
Lors de la validation du formulaire, il n'y a pas de problème, sauf que mon champ sexe dans la base de donnée n'est pas renseigné ! Pourtant, il n'y a pas de problème au niveau de l'insertion des données dans la BDD. Je pense que le problème vient de la récupération de la valeur (masc ou fem) dans le formulaire, mais je trouve pas de solutions...