Page 1 sur 1

Perosnalisation d'un formulaire

Posté : 30 juil. 2008, 08:22
par Invité
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;
?>

Posté : 30 juil. 2008, 09:33
par _activmik
Essaye avec un
isset($variable)
pour tester si un champ est rempli ou pas.

Posté : 30 juil. 2008, 09:44
par Invité
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

Posté : 30 juil. 2008, 10:08
par _activmik
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é :?

Posté : 30 juil. 2008, 10:19
par Invité
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 :)

Posté : 30 juil. 2008, 10:24
par _activmik
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.

Posté : 30 juil. 2008, 10:51
par Invité
<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

Posté : 30 juil. 2008, 11:02
par _activmik
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..

Posté : 31 juil. 2008, 15:22
par Invité
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>