Cocher automatiquement une checkbox

Eléphanteau du PHP | 18 Messages

19 févr. 2012, 15:06

Bonjour à tous,

Je cherche à cocher une checkbox "par défaut".
Je m'explique.

Après, l'envoi d'un formulaire dans lequel l'utilisateur à cocher une checkbox, si l'analyse de ce formulaire révèle qu'il a oublié de renseigner son nom (par exemple) ; je souhaite que l'utilisateur retourne à son formulaire d'origine, en conservant les cases qu'il a déjà cocher.

Merci de votre aide car je suis coincé :/

Eléphant du PHP | 209 Messages

19 févr. 2012, 16:05

Il faut que tu mettes l'attribut checked="checked" dans ton composant HTML ;)

Mammouth du PHP | 2278 Messages

20 févr. 2012, 11:21

Il existe donc deux scripts :
formulaire.php et test.php, par exemple.
pour l'exemple formulaire.php contient
<input type = 'text' name = 'nom' />
<input type = 'text' name = 'prenom' />
<input type = 'text' name = 'numero_de_carte_grise' />
quand test.php découvre qu'il manque quelque chose, il rappelle formulaire.php
à ce niveau, soit par une session, soit par des <input type = 'hidden'...> tu lui renvoies toutes les valeurs récupérées.
Je choisis par des input....
$nom = isset($_POST['nom'])? $_POST['nom'] : ""; //mais ça tu le savais déja.
<input type = 'text' name = 'nom'  value ='$nom' />
dans formulaire il faut pouvoir gérer ça en modifiant ainsi:
$nom = isset($_POST['nom'])? $_POST['nom'] : ""; 
<input type = 'text' name = 'nom'  value = '$nom' />
...
<input type = 'text' name = 'prenom' />
<input type = 'text' name = 'numero_de_carte_grise' />
Tu pourrais peut-être essayer required ='required' dans les input... de formulaire.php, mais je ne sais pas si ça marche avec IE.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 18 Messages

22 févr. 2012, 11:28

Merci pour vos réponses.

Sirakawa, j'ai pas compris en quoi tes codes vont m'aider à conserver ma checkbox cochée... :/

Shenruy, je vais essayer ta méthode ;)

Mammouth du PHP | 2278 Messages

22 févr. 2012, 13:52

Parce que, optimiste, je pensais que tu extrapolerais...
alors voici
saisie.php
<?PHP
$sexe = (isset($_POST['sexe'])) ? $_POST['sexe'] : "" ;
if ($sexe == 1)
{
	$femme_checked = "";
	$homme_checked = "checked = 'checked'";
}
else
{
	$homme_checked = "";
	$femme_checked = "checked = 'checked'";
}
$lisp_checked = (isset($_POST['abonne']))? "checked = checked":"";
$prolog_checked = (isset($_POST['abonne']))? "checked = checked":"";
$fortran_checked = (isset($_POST['abonne']))? "checked = checked":"";
$nom = (isset($_POST['nom']))? $_POST['nom']: "";
$chaine =
"<form name = 'formulaire' action = 'test.php' method = 'post'>
<label for 'nom'>Votre nom</label>
<input type = 'text' name ='nom' value = '$nom' />

<label for 'sexe'>homme</label>
<input type = 'radio' name = 'sexe' value = '1'  $homme_checked />
<label for 'sexe'>femme</label>
<input type = 'radio' name = 'sexe' value = '0' $femme_checked />
<label for 'langages'>Je connais LISP</label>
<input type = 'checkbox' name = 'langages[]' value = 'LISP'  $lisp_checked />
<label for 'langages'>Je connais PROLOG</label>
<input type = 'checkbox' name = 'langages[]' value = 'PROLOG'  $prolog_checked />
<label for 'langages'>Je connais FORTRAN</label>
<input type = 'checkbox' name = 'langages[]' value = 'FORTRAN'  $fortran_checked />
<button type = 'submit'>ok</button>
</form>";
print "$chaine";
?>
et test.php
<?PHP
$nom = (isset($_POST['nom'])) ? $_POST['nom'] : "";
$sexe =  (isset($_POST['sexe'])) ? $_POST['sexe'] : "";
$langages = (isset($_POST['langages'])) ? $_POST['langages']: array();
if ($nom == "")
{
	$chaine =" <form method = 'post' action = 'saisie.php'>
	<input type = 'text'  name = 'sexe' value = '$sexe'>
	<button type = 'submit' >Corriger</button>
	
	</form>";
	print "$chaine";

}
else
{
//traitement normal
}
//print "$nom, sexe $sexe";
//print_r($langages);
?>
Pour les checkbox, ça devrait aller de soi...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 18 Messages

24 févr. 2012, 13:56

Je vais étudier tout ça ce week end.
Merci ;)

Eléphanteau du PHP | 18 Messages

26 févr. 2012, 14:12

Nickel ça marche.
Merci beaucoup :)

Eléphanteau du PHP | 18 Messages

26 févr. 2012, 16:01

J'ai fait comme ça :
<input name="agro" type="checkbox" <?php if($agro=='a'){echo "checked='checked'";} ?> value="a" />
Merci Shenryu ;)