8792 sujets

Développement web côté serveur, CMS

Bonsoir,

Voilà je veux que lorsque j'envoie mon formulaire, les champs soient controlés, et si il y a un souci, le formulaire s'affichent avec les données déjà saisies et par exemple, le champ vide affiché en rouge...

Pour celà j'ai trouvé ce morceau de code :


$out ="";
if(!empty($_POST['nounours']) && isset($_POST['envoi'])) 
{
    $out .= 'Traitement du formulaire...<br><a href="' .$_SERVER['PHP_SELF']. '">Retour</a>';
} 
else 
{
    // Le formulaire est envoyé mais le champ nounours n'est pas rempli
    if(isset($_POST['nounours']) && (isset($_POST['envoi'])))  
	{
        $out .= 'vous n\'avez pas rempli le champ nounours';
    }
    $out .= '<form action="' .$_SERVER['PHP_SELF']. '" method="POST" enctype="application/x-www-form-urlencoded">
<input type="text" name="nounours" value="' .htmlentities($_POST['nounours']). '">
<input type="submit" name="envoi" value="OK">
</form>';
}
echo $out;


Dans cet exemple il y a un seul champs de formulaire. Je suis tellement mauvais, que je n'arrive pas à l'utiliser avec plusieurs champs de formulaire. Je n'arrive pas à vérifier bien séparement chaque champs!
Quelqu'un peut-il m'aider? Avez-vous un autre exemple à m'envoyer pour réaliser ce que je veux?

Merci
Modifié par Seb1.9 (15 Feb 2007 - 01:01)
Salut.
Un truc du style...


<?php

// création du tableau de suavegarde
$sauvegarde = array();
$sauvegarde["nounours"] = ""; // initialisation du champ

// verification de soumission
if(isset($_POST["envoi"])){

    // sauvegarde de la valeur
    // pour  les checkbox, un isset sur le post est nécessaire
    $sauvegarde["nounours"] = $_POST["nounours"];

    // traitement divers : enregistrement BDD etc.
   ...

}
?>
<input type="text" name="nounours" value="<?php echo $sauvegarde["nounours"]; ?>" />

<input type="submit" name="envoi" value="Soumettre" />


En gros...après tu peux gérer la sauvegarde des données avec des traitements spécifiques comme htmlentities par exemple.

En espérant que cela réponde à ta question Smiley cligne