Connaitre les variables qui n'ont pas été remplies

Répondre
Kurt92
le 24/09/2010 à 10:53
Kurt92
Bonjour,

Je m'essaye à la creation d'une interface de petite annonce moto.

Lorsque mon formulaire est bien remplie cela fonctionne.
Si un champs de mon formulaire n'est pas rempli, un message me l'indique.

Mais comment indiqué à l'utilisateur le champs qu'il à oublié de remplir ?

Voila où j'en suis pour le moment :
<?php
$data = array (
'modele' => $_POST['modele'],
'cylindree' => $_POST['cylindree'],
'kms' => $_POST['kms']);


if (!empty($data['modele']) AND !empty($data['cylindree']) AND !empty($data['kms']) )
{
echo '<h1>Résumé</h1>';
echo 'Vous avec choisi de mettre en ligne un véhicule : <br/>';
echo 'dont le type est : '.$_POST['type'].'<br/>';
echo 'dont la marque est : '.$_POST['marque'].'<br/>';
echo 'dont le modèle est : '.$data['modele'].'<br/>';
echo 'dont la cylindrée est : '.$data['cylindree'].' cc<br/>';
echo 'qui a '.$data['kms'].' kms<br/>';
}
else
{
echo '<h1>Les zones suivantes n\'ont pas été remplies </h1>';

foreach ($data as $cle => $element)
{
echo $cle.'<br/>';
}

}


?>


Pour info, je n'ai pas besoin de controler les 2 premiers $_POST car il s'agit d'une liste de choix avec des valeurs sélectionnées par défaut.

Merci
Kurt92
le 24/09/2010 à 11:03
Kurt92
A y'est j'ai trouvé :

<?php
$data = array (
'modele' => $_POST['modele'],
'cylindree' => $_POST['cylindree'],
'kms' => $_POST['kms']);


if (!empty($data['modele']) AND !empty($data['cylindree']) AND !empty($data['kms']) )
{
echo '<h1>Résumé</h1>';
echo 'Vous avec choisi de mettre en ligne un véhicule : <br/>';
echo 'dont le type est : '.$_POST['type'].'<br/>';
echo 'dont la marque est : '.$_POST['marque'].'<br/>';
echo 'dont le modèle est : '.$data['modele'].'<br/>';
echo 'dont la cylindrée est : '.$data['cylindree'].' cc<br/>';
echo 'qui a '.$data['kms'].' kms<br/>';
}
else
{
echo '<h1>Les zones suivantes n\'ont pas été remplies </h1>';

foreach ($data as $cle => $element)
{
if (empty($element))
{
echo $cle;
}
}

}


?>


Pouvez vous me dire si cela vous semble logique et est ce bien correct ?
Kurt92
le 24/09/2010 à 15:28
Kurt92
Je reviens avec mon bout de code.

Comment faire pour qu'une valeur à 0 (zero) ne soit pas considéré comme empty.

J'ai essayé ci dessous mais sans succès :

<?php
$data = array (
'le modele' => htmlspecialchars ($_POST['modele']),
'la cylindree' => htmlspecialchars ($_POST['cylindree']),
'les kms' => htmlspecialchars ($_POST['kms']),
'le prix' => htmlspecialchars ($_POST['prix']),
'la garantie' => htmlspecialchars ($_POST['garantie']));


if (!empty($data['le modele']) AND !empty($data['la cylindree']) AND !empty($data['les kms']) AND !empty($data['le prix']) AND !empty($data['la garantie']))
{
echo '<h1>Résumé</h1>';
echo 'Vous avec choisi de mettre en ligne ';
echo '<b>'.$_POST['type'].' '.$_POST['marque'].' '.$data['la cylindree'].' '.$data['le modele'].'</b>';
echo ' qui a <b>'.$data['les kms'].'</b> kms, qui a été mis en circulation en <b>'.$_POST['annee'].'</b> pour un prix de <b>'.$data['le prix'].'</b> €.<br/>';
if ($data['la garantie']> 0)
{
echo 'Le véhicule sera garanti <b>'.$data['la garantie'].'</b> mois.';
}
else
{
echo 'Le véhicule n\'est pas garanti.';
}
}
else
{
echo '<h2>Les zones suivantes n\'ont pas été remplies : </h2>';
echo '<ul>';
foreach ($data as $cle => $element)
{
if (empty($element) )
{
echo '<li>'.$cle.'</li>' ;
}
}

echo '</ul>';
}


?>
Kurt92
le 24/09/2010 à 15:30
Kurt92
<?php
$data = array (
'le modele' => htmlspecialchars ($_POST['modele']),
'la cylindree' => htmlspecialchars ($_POST['cylindree']),
'les kms' => htmlspecialchars ($_POST['kms']),
'le prix' => htmlspecialchars ($_POST['prix']),
'la garantie' => htmlspecialchars ($_POST['garantie']));


if (!empty($data['le modele']) AND !empty($data['la cylindree']) AND !empty($data['les kms']) AND !empty($data['le prix']) AND !empty($data['la garantie']))
{
echo '<h1>Résumé</h1>';
echo 'Vous avec choisi de mettre en ligne ';
echo '<b>'.$_POST['type'].' '.$_POST['marque'].' '.$data['la cylindree'].' '.$data['le modele'].'</b>';
echo ' qui a <b>'.$data['les kms'].'</b> kms, qui a été mis en circulation en <b>'.$_POST['annee'].'</b> pour un prix de <b>'.$data['le prix'].'</b> €.<br/>';
if ($data['la garantie']> 0)
{
echo 'Le véhicule sera garanti <b>'.$data['la garantie'].'</b> mois.';
}
else
{
echo 'Le véhicule n\'est pas garanti.';
}
}
else
{
echo '<h2>Les zones suivantes n\'ont pas été remplies : </h2>';
echo '<ul>';
foreach ($data as $cle => $element)
{
if (empty($element)AND $element!=0 )
{
echo '<li>'.$cle.'</li>' ;
}
}

echo '</ul>';
}


?>
LA GLOBULE
le 24/09/2010 à 16:28
LA GLOBULE
Pour tester si le champ est "vide", je te conseille de calculer sa longueur avec la fonction strlen.

empty est un faux ami, car comme tu l'as remarqué, si la valeur vaut '0', empty retourne true.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours