Je construit mon premier formulaire et ai qlq difficultés. Notamment avec la déclaration de variables pour les cases à cocher. J'ai un fichierA qui fait les tests et renvoi le formulaire avec les données déjà saisies ou bien le formulaire "à vide" si c'est la première fois qu'on passe dedans.
Voici le fichierA:
<?php
$coche_mr = '';
$coche_mme = ''; //'checked="checked"'; // si on veut initialiser le form
$coche_mlle = '';
if (!empty($_POST['Envoi']))
{
$coche_mr = ($_POST["civilite"] == "monsieur") ? "checked" : "";
$coche_mme = ($_POST["civilite"] == "madame") ? "checked" : "";
$coche_mlle = ($_POST["civilite"] == "mademoiselle") ? "checked" : "";
$nomprenom = (!empty($_POST["nomprenom"])) ? $_POST["nomprenom"] : '';
// Test si vide
if (!empty($_POST["nomprenom"])){
echo "OK";
}
else {
echo "PB, zone vide";
include('form_insc.inc.php');
}
}
//cas par défaut (affichage du formulaire vierge) ************************
else {
include('form_insc.inc.php');
}
?>
Et voici le fichier "formulaire" que j'appelle par include:<html>
<head>
<title>Page test</title>
</head>
<body>
<b>Merci de renseigner les informations suivantes</b>
<p></p>
<form name="form" action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post" >
<input type="radio" name="civilite" id="radio1"
value="monsieur" <?php echo $coche_mr; ?>/>Mr.<br />
<input type="radio" name="civilite" id="radio2"
value="madame" <?php echo $coche_mme; ?>/>Mme<br />
<input type="radio" name="civilite" id="radio3"
value="mademoiselle" <?php echo $coche_mlle; ?>/>Mlle<br />
<p></p>
<label for="nom">Vos nom et prénom </label>
<br />
<input type="text" name="nomprenom"
value="<?php echo (!empty($_POST["nomprenom"])) ? $_POST["nomprenom"] : ''; ?>" size="40" maxlength="40"/>
<br />
<input type="submit" value="Valider" name="Envoi">
</form>
</body>
</html>
Lorsque je lance pour la première fois fichierA = Ok, pas de pb. Si je renseigne une des cases à cocher mais oublie le nom = Ok, pas de probleme, je réaffiche le formulaire avec la bonne case cochée. MAIS, si je valide d'entrée sans rien avoir saisi alors là, il me dit un truc du style Je devine que c'est un pb de déclaration des variables mais je ne saisi pas très bien ou ? j'ai essayé en mettant "global" devant mes variables = rien !!!Notice: Undefined index: civilite in c:\program files\easyphp1-8\www\formulaires\tmpbbm3smas2t.php on line 18
Aie, aie aie, c'est dur de commencer !!!