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 :

Vérifier si un champ input est vide


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 402
    Par défaut Vérifier si un champ input est vide
    Bonjour,

    Pour éviter l'enregistrement de données vides dans une base Mysql, je souhaite vérifier qu'un champ input n'est pas vide et dans ce cas afficher un message d'erreur. Mais j'ai du mal à gérer l'articulation de ce système avec un submit faisant appel à un code JavaScript fermant automatiquement une fenêtre popup (self.close() ).

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <form action="" method="POST" onsubmit="self.close();" >
     
    <p>
    <?php
    echo '<input type="hidden" name="value4" id="value4" value="'.$value4.'"  />';
    ?>
    <br />
    <input type="text" name="text4" id="text4" />
    <br />
     
    <input type="submit" name="ajouter" value="Ajouter" />
     
     
    <?php
     
    if(isSet($_POST["ajouter"])) {
     
     
    $msg_erreur = "Champ obligatoire : ";
    $message = $msg_erreur;
     
    if (empty ($_POST['text5']))			
    	$message .= "Le nouveau contributeur <br/>"; 	
     
    if (strlen($message) > strlen($msg_erreur)) {
    echo '<br/>'.$message;
    } 
     
    else {			
     
        // insertion dans la base de données
        $text5=trim(mysql_real_escape_string($_POST['text5']));				
        $text5 = explode(", ", $text5); 
        $add5 = sprintf('INSERT INTO contributeurs (nom_contributeur,prenom_contributeur) VALUES ("'.ucfirst($text5[0]).'", "'.ucfirst($text5[1]).'")');
     
        $result = mysql_query($add5, $db) or die(mysql_error());
     
    }
    }
    ?>
     
    </p>
    </form>
    Si j'enlève le onsubmit="self.close();", mon système de contrôle fonctionne : si le champ imput qui est soumis est vide, j'ai bien le message d'erreur qui s'affiche et l'insertion dans ma base ne se fait donc pas. En revanche si je conserve le "self.close();" (pour, après la soumission, fermer automatiquement le popup contenant le formulaire), mon système de contrôle est inopérant : le message d'erreur n'est pas visible (le popup se fermant) et l'insertion des données vides se fait dans la base.

    Dans ces conditions, comment adapter mon code pour arriver à ce résultat :

    - Non déclenchement du onsubmit="self.close();" si le champ input est vide : dans ce cas le message d'erreur s'affiche, l'insertion des données ne se fait pas et le popup contenant le formulaire reste ouvert.


    - A l'inverse déclenchement du onsubmit="self.close();" si le champ input est rempli : dans ce cas pas de message d'erreur, l'insertion des données se fait et le popup contenant le formulaire se ferme.

    Voyez-vous comment arriver au résultat escompté ? Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 111
    Par défaut
    Salut,

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <script type="text/javascript">
    if ( document.getElementById("value4").value=="")
    {
    alert("Remplissez tous les champs svp.");
    }
    else
    {
    self.close();
    envoyer.submit();
    }
    </script>
     
    <form action="" name="envoyer" method="POST" >
     
    <p>
    <?php
    echo '<input type="hidden" name="value4" id="value4" value="'.$value4.'"  />';
    ?>
    <br />
    <input type="text" name="text4" id="text4" />
    <br />
     
    <input type="button" name="ajouter" onclik="valider" value="Ajouter" />
     
     
    <?php
     
    if(isSet($_POST["ajouter"])) {
     
     
    $msg_erreur = "Champ obligatoire : ";
    $message = $msg_erreur;
     
    if (empty ($_POST['text5']))			
    	$message .= "Le nouveau contributeur <br/>"; 	
     
    if (strlen($message) > strlen($msg_erreur)) {
    echo '<br/>'.$message;
    } 
     
    else {			
     
        // insertion dans la base de données
        $text5=trim(mysql_real_escape_string($_POST['text5']));				
        $text5 = explode(", ", $text5); 
        $add5 = sprintf('INSERT INTO contributeurs (nom_contributeur,prenom_contributeur) VALUES ("'.ucfirst($text5[0]).'", "'.ucfirst($text5[1]).'")');
     
        $result = mysql_query($add5, $db) or die(mysql_error());
     
    }
    }
    ?>
     
    </p>
    </form>
    En magouillant un peu ça devrais marcher.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 402
    Par défaut
    Merci pour ton code. Mais je suis arrivé au résultat escompté simplement en insérant un code javascript self.close() dans mon else au lieu de mettre un onsubmit au niveau du form.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment vérifier si un champ date est null ?
    Par newmar dans le forum Struts 1
    Réponses: 4
    Dernier message: 06/05/2008, 00h23
  2. Réponses: 2
    Dernier message: 13/11/2007, 10h19
  3. Réponses: 11
    Dernier message: 17/01/2007, 22h06
  4. [Pl / Sql ] Tester si un champ blob est vide
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 2
    Dernier message: 27/10/2006, 17h13
  5. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40

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