Perosnalisation d'un formulaire

Invité
Invité n'ayant pas de compte PHPfrance

30 juil. 2008, 08:22

Bonjour,

Je veux personaliser un peu un formulaire simple, en citant tous les champs vides un apres l'autre:
<?php

if ($champs1=='') {
echo 'champs1 est vide';
}
elseif ($champs2=='') {
echo 'champs2 est vide';
}
...
?>
ici va me transmettre les champs vides un par un, alor je veux les mettre ainsi:

* champs1 est vide.
* champs2 est vide.

J'ai fait celui la, mais ca marche pas:
<?php

if ($champs1=='') {
$erreur = 'champs1 est vide';
}
elseif ($champs2=='') {
$erreur = 'champs2 est vide';
}
...

if isset($erreur)
echo $erreur;
?>

Eléphant du PHP | 169 Messages

30 juil. 2008, 09:33

Essaye avec un
isset($variable)
pour tester si un champ est rempli ou pas.

Invité
Invité n'ayant pas de compte PHPfrance

30 juil. 2008, 09:44

c'est juste un petit code, mon but c'est de les avoir toutes en meme resultat:

* champs1 vide,
* champs2 vide,
* champs3 vide,

ainsi de suite

Eléphant du PHP | 169 Messages

30 juil. 2008, 10:08

Si j'ai bien compris tu t'emmêles avec les if, ifelse etc ?
Si c'est le cas, essaye avec un code du style :
Switch
{


case champ1 :

if vide
else

break;

case champ2:

break;


}

Sinon je vois pas ce que tu veux dire, désolé :?

Invité
Invité n'ayant pas de compte PHPfrance

30 juil. 2008, 10:19

Supposons j'ai 2 champs a verifier: nom et prenom, lorsque le champs nom est vide j'aurais message "nom est vide" et lorsque j'ai prenom est vide j aurais message "prenom est vide", les 2 messages seront traites individuellement, au cas ou les 2 champs sont vide je veux avoir comme resultat:

* nom est vide,
* prenom est vide

et pas:

* nom est vide

=> l utilisateur doit le remplire apres il envoi le formulaire et recoit encore:

* prenom est vide

=> je veux les regrouper :)

Eléphant du PHP | 169 Messages

30 juil. 2008, 10:24

En faite je pense qu'il y a une erreur d'analyse en premier lieu.

Tes deux champs sont bien dans un seul formulaire ?
<html>
<FORM>
<input type ="text" name="prenom">
<input type ="text" name="nom">

<input type="submit" value="Creer l'utilisateur" >
</FORM>
</html>
Si c'est le cas, quand tu lances le formulaire, le message concernera tes deux champs.

Sinon, si tu veux de l'affichage temps réel d'erreur, va voir du côté du Javascript.

Invité
Invité n'ayant pas de compte PHPfrance

30 juil. 2008, 10:51

<html> 
<FORM> 
<input type ="text" name="prenom"> 
<input type ="text" name="nom"> 

<input type="submit" value="Creer l'utilisateur" > 
</FORM> 
</html> 
c'est quoi le code pour retourner ce resultat:

Code : Tout sélectionner

* Champs prenom est vide, * Champs nom est vide, Cliquer ici pour retourner

Eléphant du PHP | 169 Messages

30 juil. 2008, 11:02

Je ferais un truc du genre
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
Switch ($prenom, $nom){


//cas ou les deux champs sont vides
case ($prenom =="" && $nom =="") :
echo "Les champs prenom et nom sont vides";
break;

//cas ou juste le prenom manque
case ($prenom =="");
echo "Le champ prenom est vide";
break;

//cas ou le nom manque
case ($nom =="") :
echo "Le champ nom est vide";
break;

}

Mais bon, comme dit tu as plus vite fait de passer par un isset..

Invité
Invité n'ayant pas de compte PHPfrance

31 juil. 2008, 15:22

voila quelque chose comme ca:
<?php

$name = isset($_POST['name']) ? $_POST['name'] : Null;
$surname = isset($_POST['surname']) ? $_POST['surname'] : Null;
$information = isset($_POST['information']) ? $_POST['information'] : Null;

if (isset($_POST['submitted']))
{
if (empty($name))
{
	
	$erreur = "<b>pas de nom</b>";
}

elseif (empty($surname))
{
	
	$erreur .= "<b>pas de prenom</b>";
}

elseif (empty($information))
{
	
	$erreur .= "<b>pas d infos</b>";
}
else
{
	echo "c bon<br>";
	echo "name<br>";
	echo "surname<br>";
	echo "information<br>";
}
}
if (isset($erreur)){
	echo $erreur;
	}
?>	
	<form name="leformulaire" action="<? echo $_POST['SERVER']; ?>" enctype="multipart/form-data" method="post">
Nom: <input name="name" type="text" length="20" value="name here"><br>
Prenom: <input name="surname" type="text" length="20"><br>
Informations: <textarea name="information" cols="20" rows="15">ici vos infos</textarea><br>
<input type="submit" name="submitted" value="Go">
</form>