IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire qui fait un raz...


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 915
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 915
    Points : 420
    Points
    420
    Par défaut Formulaire qui fait un raz...
    Bonjour,

    je veux faire apparaitre des messages d'erreurs sur mon formulaire.
    Tout marche bien, le seul souci, c'est que mes messages d'ereurs aparaissent quand je clique sur le bouton OK mais mes champs se réinitialise automatiquement.

    j'aimerais avoir les messages d'erreur et que le formulaire garde en mmoire les données tapées par l'utilisateur.

    voici un bout de moncode html et un bout de mon cde php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
     
    html
    <form method="post" action="crecli.php" class="form">
     
    <td width="36%" bgcolor="white"> 
    									  <div align="right"><input type="submit" name="Submit" value="OK"></div>
    									</td>
     
    php
     
     
    <?php
    								if (isset($_POST['Submit']))
    								{
     
    									// affectation des variables
     
    									$civilite = $_POST['civilite'];
    									$mail = $_POST['mail']; 
    									$point = strpos($mail,"."); 
     
    etc...
     
    ?>
    merci d'avance.

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    salut,

    il suffit de mettre la valeur de la superglobale $_POST correspondant à chaque élément dans la propriété value

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // declaration / initialisation
    $nom=(!isset($_POST['nom']))?(''):($_POST['nom']);
     
    ....
    ....
     
    <input type="text" id="nom" name="nom" value="<?php echo $nom; ?>" />

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 915
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 915
    Points : 420
    Points
    420
    Par défaut
    salut,

    je ne comprends pas ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $nom=(!isset($_POST['nom']))?(''):($_POST['nom']);
    peut tu me l'expliquer stp
    le ?, les dex points : : : et le reste.

    merci.

  4. #4
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    C'est un opérateur ternaire qui équivaut à remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ( condition )
    {
    action true
    }
    else
    {
    action false
    }
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    condition ? action true : action false ;
    C'est plus léger à écrire, on peut imbriquer les opérateurs à l'infini, il y a seulement un hic : beaucoup de polémique parmis les développeur sur les performance comparées des deux méthodes.

    Plus d'info ici -> http://fr.php.net/manual/fr/language.operators.comparison.php

    Et notament :

    <?php
    &#160;
    //&#160;Exemple&#160;d'utilisation&#160;pour&#160;l'opérateur&#160;ternaire
    &#160;
    $action&#160;=&#160;(empty($_POST['action']))&#160;?&#160;'défaut'&#160;:&#160;$_POST['action'];

    &#160;
    //&#160;La&#160;ligne&#160;ci-dessus&#160;est&#160;identique&#160;à&#160;la&#160;condition&#160;suivante&#160;:
    &#160;
    if&#160;(empty($_POST['action']))&#160;{
    &#160;&#160;&#160;&#160;&#160;
    $action&#160;=&#160;'défaut';
    &#160;}&#160;else&#160;{
    &#160;&#160;&#160;&#160;&#160;
    $action&#160;=&#160;$_POST['action'];
    &#160;}

    &#160;
    ?>&#160;
    Phpsyntaxcolor powered by decabodi

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 915
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 915
    Points : 420
    Points
    420
    Par défaut
    le problème c'est cette technique ne marche pas,

    je fais le test de mes variables avant l'envie de mon formualaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    if(isset($mail)) {$mail = $_POST['mail'];}
    									else { $mail = "";}
    puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <input type="text" name="mail" value="<?php echo $mail; ?>">
    au début, comme je n'ai rien tapé, ma varibale mail est vide.

    Et quand je tape mon mail dans mon formulaire, il voit toujours une variable vide. Il ne prends jamais la valeur que j'ai tapé dans le formualire.
    Là je ne sais plus comment faire

  6. #6
    m@t
    m@t est déconnecté
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 172
    Points : 122
    Points
    122
    Par défaut
    As tu essayé :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(isset($_POST["mail"])) {$mail = $_POST['mail'];}
                               else { $mail = "";}
    A savoir que dans ce cas là tu devras avoir un champ de saisie pour ton mail sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="mail" value="<?php echo $mail; ?>">

  7. #7
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 915
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 915
    Points : 420
    Points
    420
    Par défaut
    merci ça marche beaucoup mieux comme ça.

    j'essaie par contre miantenant de faire un raz de la façon suivante, mais
    ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    html
     
    <div align="right"><input type="reset" name="RAZ" value="Remise à zéro"></div>
     
    php
     
    if (isset($_POST['RAZ']))
    								{
    									$mail = ""; 
    									$point = ""; 
    									$aroba = ""; 
    									$nom = ""; 
    									$prenom = "";
    									$telephone = "";
    									$mdp = "";
    									$mdpc = "";
    									$ad_ligne1 = "";
    									$ad_ligne2 = "";
    									$ad_cp = "";
    									$ad_ville = "";
    								}
    merci d'avance.

Discussions similaires

  1. Formulaire qui fait remonter la page en haut
    Par Holzhammer dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 07/02/2015, 18h43
  2. probleme de requette qui fait planter powergres
    Par fehmitn dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/09/2004, 18h48
  3. Réponses: 12
    Dernier message: 16/03/2004, 14h21
  4. Réponses: 2
    Dernier message: 29/10/2003, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo