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

JavaScript Discussion :

Controler si un champ TEXT est vide ou pas


Sujet :

JavaScript

  1. #21
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    Citation Envoyé par yawra Voir le message
    ya pas de méthode permettant de donner au champ TEXT le nom du cours?? c'est à dire à chaque cours affichés le champ TEXT correspond prend comme name le nom du cours ??
    tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT fullname
    FROM mdl_211course
    donc tu vas chercher dans la table mdl_211course les elements de la colonne fullname

    et là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    while($ligne=mysql_fetch_assoc($resultat)){
    echo '<b><h3><font color=#6495ED>'.$ligne["shortname"].'</h3>
    <input type="text" name="coefficient" size=15><br>';
    }
    ?>
    il manque pas une ligne
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $resultat = mysql_query(requete);
    donc oui tu peux donner la value de ton champs text le nom du cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="coefficient" size=15 value=".$ligne["shortname"]."><br>';
    mais si tu lui donnes une value, tu ne pourras pas tester si le gars à rempli le champs....

    en plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ligne["shortname"]
    shortname ne doit pas être le nom de la colonne de la table? car dans ta requete sql il n'y a que fullname..

  2. #22
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    Citation Envoyé par oceane751 Voir le message
    donc pour le name il faut que tu ais une variable, donc un nom différent à chaque fois
    tu peux peut être y mettre le "$ligne["shortname"]'"
    je te l 'ai dit tout à l'heure

  3. #23
    Membre du Club
    Femme Profil pro
    Etudiant informatique
    Inscrit en
    Mars 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 86
    Points : 41
    Points
    41
    Par défaut controler si un champ TEXT est vide
    Si, il existe dans ma table mdl_211course une colonne fullname (par exemple programmation) et une colonne shortname (par exemple pgmc)
    Donc la requete
    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT fullname,shortname
    FROM mdl_211course;
    donne le résultat suivant:
    Nom : cours.PNG
Affichages : 130
Taille : 5,6 Ko
    est ce qu'on peut faire le controle avec ces données ??

  4. #24
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    tu testes au moins les idées que je te donne?

  5. #25
    Membre du Club
    Femme Profil pro
    Etudiant informatique
    Inscrit en
    Mars 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 86
    Points : 41
    Points
    41
    Par défaut controler si un champ TEXT est vide
    oui biensur je teste mais ça bloque, car il y a un risque que le shortname du cours contient des espaces ce qui va générer des erreurs. Don j'ai fait autre chose, j'ai donné au champ TEXT l'id du courrs correspondant comme 'name' c'est ça:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while($ligne=mysql_fetch_assoc($resultat)){
     
    echo '<b><h3><font color=#6495ED>';
    echo $ligne['shortname'].'</h3>';
    echo '<input type="text" name="coef[';
    echo $ligne['courseid'];
    echo ']" size="3" value="1">';
    }
    Donc ça évite les espaces, les répétition des même shartname et évite de donner à tous les champs le même nom.
    Mais je me trouve de nouveau au début comment faire mnt ? qu'est que vous proposez?
    Donc maintenant, pour contrôler si les champs sont remplies ou pas on doit

  6. #26
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    oui pourquoi pas
    mais il faut passer en parametre dans l'url de "action" du formulaire, une variable qui contiendra la variable que tu veux
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mapage?variable=$X
    et tu pourras la récupérer par la suite

    c'est ce que je vais tenté de faire...

  7. #27
    Membre du Club
    Femme Profil pro
    Etudiant informatique
    Inscrit en
    Mars 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 86
    Points : 41
    Points
    41
    Par défaut
    j'ai pas compris votre idée quelle variable ont doit passer dans l'URL ?? et à quoi ça sert dans le controle du champ est-ce qu'il est remplie ou pas ??

  8. #28
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Aloars ce topic serait normalement lié à celui ci (Php) : récupérer la valeur d'un champ text

    Je vais tenté d'apporter une solution théoriquement simple (il y en d'autres très certainement) pour vérifier en JS dans ce cas présent.
    C'est à dire des input/text sous forme de tableau.
    Exemple :
    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
    <form method="post" onsubmit="return controle();" action="essai.php">
    <fieldset>
    <?php
    // Une boucle
    $cpt = 1;
    while (... etc ...) {
    ?>
    <p>
        <label><?php echo $ligne['shortname']; ?></label>
        <input type="text" id="coef_<?php echo $cpt; ?>" name="coef[<?php echo $ligne['courseid']; ?>]" value="" />
    </p>
    <?php
        $cpt++;
    }
    ?>
    </fieldset>
    </form>
    Le HTML généré donnerait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form method="post" onsubmit="return controle();" action="essai.php">
    <fieldset>
    <p>
        <label>Cours A</label>
        <input type="text" id="coef_1" name="coef[14]" value="" />
    </p>
    <p>
        <label>Cours B</label>
        <input type="text" id="coef_2" name="coef[20]" value="" />
    </p>
    </fieldset>
    </form>
    Le code JS :
    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
    function controle() {
        var i, coef, erreur, i_erreur, msg_type, msg;
        erreur = false;
        msg = '';
        msg_type = "ERREUR";
        coef = document.getElementsByName("coef[]");
        //alert("coef : " + coef);
        if (coef) {
            for (i = 0; i < coef.length; i++) {
                //alert("coef : " + coef[i].value);
                if (coef[i].value == "") {
                    i_erreur = i + 1;
                    msg += "[coef " + i_erreur + "] " + msg_type + "\n";
                    erreur = true;
                }
            }
        }
     
        if (erreur) {
            alert(msg);
            document.getElementById("coef_" + i_erreur).focus();
            return false;
        }
        return true;
    }
    Le principe est de déclencher le contrôle JS au niveau du formulaire avec l'évènement : onsubmit
    Et aussi (surtout) de faire un return : onsubmit="return controle();"
    Puis de faire les vérification, et dès qu'on détecte une erreur, initialiser la variable "erreur" à true de façon que cela renvoie false.
    Dans ce cas le formulaire ne sera pas soumis (submité).

    Pour parcourir un input/text en tableau, le moyen ici c'est de le faire par le biais de son nom : document.getElementsByName("coef[]")
    Et de mettre les crochets : coef[]
    Une boucle permettra alors de le parcourir.


    En espérant que cela puisse vous aider.

  9. #29
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    Citation Envoyé par yawra Voir le message
    j'ai pas compris votre idée quelle variable ont doit passer dans l'URL ?? et à quoi ça sert dans le controle du champ est-ce qu'il est remplie ou pas ??
    je raconte des conneries..
    on peux pas passer de parametre dans le action

    et le contrôle du champs c'est toi qui le veux non?


    tu as une bonne solution dans ton post sur le forum "php"

    en fait dans ce post, on pouvait récupérer la valeur du name
    après à partir de ce name, vérifier si le champs correspondant a été rempli ou noon en js

  10. #30
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut

    Aloars ce topic serait normalement lié à celui ci (Php) : récupérer la valeur d'un champ text

    Je vais tenté d'apporter une solution théoriquement simple (il y en d'autres très certainement) pour vérifier en JS dans ce cas présent.
    C'est à dire des input/text sous forme de tableau.
    Exemple :
    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
    <form method="post" onsubmit="return controle();" action="essai.php">
    <fieldset>
    <?php
    // Une boucle
    $cpt = 1;
    while (... etc ...) {
    ?>
    <p>
        <label><?php echo $ligne['shortname']; ?></label>
        <input type="text" id="coef_<?php echo $cpt; ?>" name="coef[<?php echo $ligne['courseid']; ?>]" value="" />
    </p>
    <?php
        $cpt++;
    }
    ?>
    </fieldset>
    </form>
    Le HTML généré donnerait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form method="post" onsubmit="return controle();" action="essai.php">
    <fieldset>
    <p>
        <label>Cours A</label>
        <input type="text" id="coef_1" name="coef[14]" value="" />
    </p>
    <p>
        <label>Cours B</label>
        <input type="text" id="coef_2" name="coef[20]" value="" />
    </p>
    </fieldset>
    </form>
    Le code JS :
    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
    function controle() {
        var i, coef, erreur, i_erreur, msg_type, msg;
        erreur = false;
        msg = '';
        msg_type = "ERREUR";
        coef = document.getElementsByName("coef[]");
        //alert("coef : " + coef);
        if (coef) {
            for (i = 0; i < coef.length; i++) {
                //alert("coef : " + coef[i].value);
                if (coef[i].value == "") {
                    i_erreur = i + 1;
                    msg += "[coef " + i_erreur + "] " + msg_type + "\n";
                    erreur = true;
                }
            }
        }
     
        if (erreur) {
            alert(msg);
            document.getElementById("coef_" + i_erreur).focus();
            return false;
        }
        return true;
    }
    Le principe est de déclencher le contrôle JS au niveau du formulaire avec l'évènement : onsubmit
    Et aussi (surtout) de faire un return : onsubmit="return controle();"
    Puis de faire les vérification, et dès qu'on détecte une erreur, initialiser la variable "erreur" à true de façon que cela renvoie false.
    Dans ce cas le formulaire ne sera pas soumis (submité).

    Pour parcourir un input/text en tableau, le moyen ici c'est de le faire par le biais de son nom : document.getElementsByName("coef[]")
    Et de mettre les crochets : coef[]
    Une boucle permettra alors de le parcourir.


    En espérant que cela puisse vous aider.
    faudrait qu'il teste ton code

  11. #31
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    faudrait qu'il teste ton code
    Oui, c'est vrai.
    Mais elle fait ce quelle veut après tout.

    Aussi bien le code Php que le code JS est théoriquement fonctionnel.
    A chacun de voir si cela intéresse ou pas.
    Le code est Open.

  12. #32
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    il est frais ton code!
    donc il faudrait vraiment qu'elle le teste
    se serait un peu si elle ne le fait pas

    d'ailleurs perso je vais te le piquer et le mettre de coté

    donc pb résolu
    jvais pouvoir me mater un walking dead

  13. #33
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par oceane751
    d'ailleurs perso je vais te le piquer et le mettre de coté
    Au voleur
    Je déconne.

    Tu fais comme tu le sens, c'est Open.

  14. #34
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    Merci très cher!

  15. #35
    Membre du Club
    Femme Profil pro
    Etudiant informatique
    Inscrit en
    Mars 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 86
    Points : 41
    Points
    41
    Par défaut
    Mais j'ai essayé mais ça marche pas rien ne se passe, qu se soit tous les champs sont vides, ou quelque champ sont vide la redirection se fait si y a des valeur saisies elles s'affichent sinon rien ne s'affiche

  16. #36
    Membre du Club
    Femme Profil pro
    Etudiant informatique
    Inscrit en
    Mars 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 86
    Points : 41
    Points
    41
    Par défaut controler si un champ TEXT est vide
    Je vais vous postez mon code, il est un peu long j’espère que vous pouvez m'aider à corriger la faute ben vous connaissez normalement tout à propos ce code car c'est avec votre help que je developpe
    Code php : 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    <html>
    <head>
    <title>
    Moyenne Cours
    </title>
    <SCRIPT language="Javascript">
    <!--
     
    function Chargement() {
    	alert('Veuillez remplir les champs en saisissant les coefficients correpondants à chaque cours!!');
    }
     
    //-->
    </SCRIPT>
    <SCRIPT language="JavaScript">
    <!--
    function controle() {
        var i, coef, erreur, i_erreur, msg_type, msg;
        erreur = false;
        msg = '';
        msg_type = "ERREUR";
        coef = document.getElementsByName("coef[]");
        //alert("coef : " + coef);
        if (coef) {
            for (i = 0; i < coef.length; i++) {
                //alert("coef : " + coef[i].value);
                if (coef[i].value == "") {
                    i_erreur = i + 1;
                    msg += "[coef " + i_erreur + "] " + msg_type + "\n";
                    erreur = true;
                }
            }
        }
     
        if (erreur) {
            alert(msg);
            document.getElementById("coef_" + i_erreur).focus();
            return false;
        }
        return true;
    }
    //-->
    </script>
    </head>
    <body link="#FF6600" vlink="#FF9900" onload="Chargement();">
    <form name="form" onsubmit="return controle();" action="res1.php" method="post">
    <fieldset>
    <fieldset>
    <legend><h3><b>Les Coefficients</b></h3></legend>
    <?php
    //connect to the server
    $connect=mysql_connect("localhost","root","");
    //connect to the db
    mysql_select_db("moodle211");
    //controle du champ de la formule
    //query the db
    $requete='SELECT DISTINCT(fullname),shortname,courseid
    FROM mdl_211course,mdl_211course_categories,mdl_211grade_items
    WHERE mdl_211course_categories.name="'.mysql_real_escape_string($_GET["nom"]).'"
    AND mdl_211course_categories.id = mdl_211course.category
    AND mdl_211course.id=mdl_211grade_items.courseid';
    $resultat=mysql_query($requete) or die ('<h4><b>Erreur SQL!</h4></b><br>'.$requete.'<br>'.mysql_error());
    //fetch the result
    $cpt =1;
    while($ligne=mysql_fetch_assoc($resultat)){
    echo '<b><h3><font color=#6495ED>';
    ?>
    <p>
    <label><?php echo $ligne['shortname'].'</h3>'; ?></label>
    <input type="text" id="coef_<?php echo $cpt; ?>" name="coef[<?php echo $ligne['courseid']; ?>]" value="1" size="3" />
    </p>
    <?php
        $cpt++;
    }
    ?>
    <br><br><center><input type='submit' name='appliquer' value='Appliquer' >
    <a href=choixmoycat.php>
    <input type=reset name=annuler value=Annuler></a>
    </center>
    </fieldset></fieldset></form>
    </body>
    </html>
    c'est l'affichage de la première page:
    Nom : première page.PNG
Affichages : 141
Taille : 11,8 Ko
    lorsque je clique sur 'appliquer' je passe à la deuxième page:
    Nom : deuxième page.PNG
Affichages : 132
Taille : 3,6 Ko
    Mais mémé si je ne saisie pas de coefficient (champ TEXT non rempli) la redirection se fait:
    Nom : 2 eme page.PNG
Affichages : 136
Taille : 3,0 Ko

    où est l'erreur??

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/07/2013, 16h45
  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