PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 26-06-2009 20:38:50

vivi21
Membre
Inscription : 26-06-2009
Messages : 4

controler qu'une case type radio est cochée

Bonjour,

Je suis débutante. J'aimerais savoir comment vérifier que l'une de mes cases est cochée. Voici ce que j'ai déjà fait (ci-dessous). Je coince un peu, merci de me proposer une solution de déblocage. J'ai le même souci ensuite car j'aurai des cases multiples à cocher.


<? include("VerifyLogin.php");

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

        $etat = "erreur";

        if (isset($_POST["num_quest_donnees"])) {
                 $_POST["num_quest_donnees"]=trim(stripslashes($_POST["num_quest_donnees"]));
        }
    if (isset($_POST["nation_autre"])) {
                 $_POST["nation_autre"]=trim(stripslashes($_POST["nation_autre"]));
    }
       if (empty($_POST["num_quest_donnees"])) {
                 $erreur="[Veuillez saisir le numéro du questionnaire attribué]";
    }
    elseif (strspn(strtolower($_POST["num_quest_donnees"]),"0123456789abcdefghijklmnopqrstuvwxyz") < strlen($_POST["num_quest_donnees"])){
                 $erreur="[Numéro du questionnaire attribué invalide (ex : AA057)]";
    }
    elseif (strspn($_POST["num_quest_donnees"],"0123456789") < 5){
                 $erreur="[Numéro du questionnaire attribué invalide (5 caractères)]";
    }
    elseif (empty($_POST["etud_annee"])) {
                 $erreur="[Veuillez saisir l'année de l'étude]";
        }
   
   
   
    else {

                 $etat="ok";
$org_code = ($_SESSION['username']);
$org_mdp = ($_SESSION['password']);

$num_quest_donnees = htmlspecialchars($_POST['num_quest_donnees'],ENT_QUOTES);
$etud_annee = $_POST['etud_annee'];
$sexe = $_POST['sexe'];

$db_user = ' ';
$db_pass = ' ';


        }
}
else {

           $etat="attente";
}

?>


<html>
<head>
</head>

<body>

         <?php
         if ($etat!="ok"){
         if ($etat=="erreur"){

                         echo "<p class=\"titreturquoise\">".$erreur."</p>\n";

         }
     
?>
<form name="form1" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">

<p class="titrenoir">Données générales</p>
<p class="texte">[les champs précédés du signe <span class="soustitrerouge">¤</span> sont obligatoires]</p>

<p> </p>
<p class="soustitrenoir">NUMERO : <span class="soustitrerouge">¤</span></p>

<table border="0" cellpadding="0" cellspacing="2" bgcolor="#CCCCCC">
  <tr>
      <td><input name="num_quest_donnees" type="text" id="num_quest_donnees" style="background-color:#000000; color:#FFFFFF; border:1px #92A6B4 solid ;
font-family: Verdana; font-size:10px" value="<?php
        if (!empty($_POST["num_quest_donnees"])) {

                echo htmlspecialchars($_POST["num_quest_donnees"],ENT_QUOTES);
        }
        ?>" size="5"></td>
  </tr>
 </table>

<p> </p>
<p class="soustitrenoir">1 - Année de naissance : <span class="soustitrerouge">¤</span></p>

<table border="0" cellpadding="0" cellspacing="2" bgcolor="#CCCCCC">
  <tr>
      <td><input name="etud_annee" type="text" id="etud_annee" style="background-color:#000000; color:#FFFFFF; border:1px #92A6B4 solid ;
font-family: Verdana; font-size:10px" value="<?php
        if (!empty($_POST["etud_annee"])) {

                echo htmlspecialchars($_POST["etud_annee"],ENT_QUOTES);
        }
        ?>"></td>
  </tr>
 </table>
 
 
 <p> </p>
<p class="soustitrenoir">2 - Sexe :<span class="soustitrerouge">¤</span></p>

<table border="0" cellpadding="0" cellspacing="2" bgcolor="#CCCCCC">
  <tr>
 
    <td class="texte">Masculin</td>
  <td><input name="sexe" type="radio" value="masculin" style="background-color:#000000; color:#FFFFFF; border:1px #92A6B4 solid ;font-family: Verdana; font-size:10px"<?php
        if (!empty($_POST["sexe"])) {
                $sexe = $_POST["sexe"];
        if ($sexe =="Masculin") { echo " checked"; }
        }
    else {
        $sexe = "";
    }
         ?></td>
    <td class="texte">Féminin</td>
  <td><input name="sexe" type="radio" value="feminin" style="background-color:#000000; color:#FFFFFF; border:1px #92A6B4 solid ;
font-family: Verdana; font-size:10px"<?php
        if (!empty($_POST["sexe"])) {
                $sexe = $_POST["sexe"];
        if ($sexe =="Féminin") { echo " checked"; }
        }
    else {
         if ($sexe !="Masculin" && $sexe!="Féminin")
        {
        echo "Le sexe DOIT être rempli :";
        echo "</font>";
        echo "<BR>";
        }}
    ?></td>
     
     
  </tr>  
</table>


 
 
<!--**********FIN QUESTIONNAIRE-->

<p> </p>
<p> </p>
<p align="center" class="soustitrenoir"><span class="soustitrerouge">Attention</span>,</p>
<p align="center" class="soustitrenoir">Merci de bien vouloir vérifier l'exactitude de vos réponses avant de soumettre le formulaire.
Si lors de la validation, vous vous retrouvez au début du questionnaire, cela signifie qu'il manque certaines réponses (ceci sera mentionné en bas du titre)</p>
<div align="center">
  <input type="submit" name="valider" id="valider" value="Valider " style="background-color:#FF3838; color:#FFFFFF; border:1px #92A6B4 solid ; font-family: Verdana; font-size:10px">
</div>
<p>  </p>
</form>
<?

}
else {


$connection = mysql_connect('localhost', $db_user, $db_pass) or die(mysql_error());
mysql_select_db('creai_db', $connection) or die(mysql_error());


$query = "INSERT INTO sdat (org_code,org_mdp,num_quest_donnees,etud_annee,sexe,matrimo,nationalite,nation_autre) VALUES('$org_code','$org_mdp','$num_quest_donnees','$etud_annee','$sexe','$matrimo','$nationalite','$nation_autre')";

$execution = mysql_db_query("creai_db", $query);

}

?>

</body>
</html>
 

Hors ligne

#2 27-06-2009 07:30:07

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : controler qu'une case type radio est cochée

Saluton,
Si tu pouvais cibler plus précisément ta problématique au lieu de nous balancer 83 lignes de code, on pourrait peut-être progresser vers sa résolution.

Au passage, la norme pour les attributs c'est checked="checked" et non un laxiste checked.
Je te recommande aussi de ne pas embrouiller ton code avec des attributs de style dans les balises.
D'autant que tu sembles, par ailleurs, utiliser une feuille de style avec des classes.
Mais, paradoxalement on voir encore dans ton patchwork de code traîner des <p align="center" et des <font


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 27-06-2009 09:20:23

vivi21
Membre
Inscription : 26-06-2009
Messages : 4

Re : controler qu'une case type radio est cochée

Dans mes coches radios ici masculin féminin, je voudrais vérifier que l'une de mes coches est bien coché aussi non j'affiche un message d'erreur sans vider le reste du formulaire. J'ai également une question avec des réponses multiples et je voudrais vérifier que l'utilisateur a au moins coché une coche avant de valider mon formaulaire;

C'est vrai j'ai repris ce code déjà fait par un ancien collègue mais je dois dans ce code faire des tests de chaque réponses avant validation.

Si je fait une fontion javascript avec une alerte, mon formulaire ce vide.

Hors ligne

#4 27-06-2009 09:59:15

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : controler qu'une case type radio est cochée


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#5 27-06-2009 20:35:37

vivi21
Membre
Inscription : 26-06-2009
Messages : 4

Re : controler qu'une case type radio est cochée

Merci pour ces liens, mais dans mon code


<form name="form1" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
 

Comment remplacer le echo $_server... afin que l'neregistrement de mon formulaire ce trouve dans ma base de données.

Merci beaucoup.

Hors ligne

#6 27-06-2009 23:14:11

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : controler qu'une case type radio est cochée

salut,

cette variable indique que l'action du formulaire (le traitement) se fera sur la page où tu te trouve.
tu dois voir le traitement en haut de la page je pense.

l'enregistrement en base se fait dans le bout de code qui se trouve (je pense) en haut de ta page php.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#7 28-06-2009 06:21:56

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : controler qu'une case type radio est cochée

Saluton,
Ce genre de pseudo impasse conceptuelle, notamment chez le débutant, m'incite à préconiser de s'appuyer, dès que possible, sur un motif de conception (design pattern) comme MVC (Modèle Vues Contrôleur).
On peut en voir une courte et rapide présentation  ici : http://julien-pauli.developpez.com/tuto … ontroleur/
Si l'on couple cela avec l'utilisation d'une abstraction d'accès aux données comme PDO, je crois que l'on doit approcher le bonheur.:rolleyes:


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums