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 :

Changer la couleur d'un input dans un formulaire


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut Changer la couleur d'un input dans un formulaire
    Bonjour,

    Je ne trouve pas comment faire la chose suivante : j'ai un formulaire, et si la donnée entrée dans le formulaire est fausse, ma zone de saisie devient rouge.
    J'ai essayé ceci :
    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
    <head>
          <title>Test</title>
    	  <meta charset="utf-8" />
    	   <style type="text/css">
                .fond_rouge
                {
                    background-color: red;
                }
            </style>
    </head>
    
    ...
    
    
    <input type="text" name="nom" value="<?php if (isset($_POST['nom']))
    								{
    									echo $_POST['nom'];
    								} 
    							      ?>" 
    								class="fond_rouge" 
    								required="required" /><br />
    Cependant, écrit comme ceci, la zone de saisie est toujours rouge, je voudrais savoir s'il y a moyen de mettre une condition, mais je n'ai pas trouvé comment ?

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="nom" value="<?php if (isset($_POST['nom'])) { echo $_POST['nom']; } ?>" <?php if (taconditionerreur) { echo 'class="fond_rouge"'; ?> required="required" /><br />
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut
    Bonjour,

    Merci beaucoup pour l'aide. Je vais essayer de suite.
    J'ai juste une question : quand on crée une variable dans un bloc php, est-ce qu'elle est valable partout, ou uniquement dans ce bloc ?

    EDIT :

    J'ai fait ceci :
    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
     
    <input type="text" name="nom" value="<?php if(isset($_POST['nom']))
    												{
    														echo $_POST['nom'];
    												} 
    										?>" 
    										<?php if ($estValideNom==False && $afficher==True) 
    												{ 
    													echo "estvaliderNom est faux !";
    													echo 'class="fond_rouge"';
    												}
    												else
    												{
    													echo "estvaliderNom est vrai !";
    													echo 'class="sans_fond"';
    												}
    										?>
    										required="required" /><br />
    Cependant on dirait que ça ne rentre jamais dans les conditions car mes 2 echo (estvaliderNom est faux/vrai !) ne s'affichent jamais. C'est pour cela que je demande l'histoire de portée de mes variables.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les blocs PHP fonctionnent comme un seul script entier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut
    Donc logiquement, si je déclare ma variable $estValideNom, par exemple, en dessous de mon <input...>, je peux avoir accès à cette variable dans le input ?

    Car je viens de prendre ton code, et j'ai affecté la valeur 5 à une variable Test. Le code est devenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <input type="text" name="nom" value="<?php if(isset($_POST['nom'])){
    														echo $_POST['nom'];
    												} 
    										?>" 
    										<?php if ($Test==5) 
    												{ 
    													echo 'class="fond_rouge"';
    												}
    Si je mets la ligne <?php Test=5 ?>, mon input devient rouge, et si je le mets après, il ne change pas de couleur.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Non, le script est exécuté de haut en bas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut
    Est-il possible de "faire remonter" la variable du coup, ou d'y avoir accès partout ?
    Car en fait, mon input devient rouge une fois que j'ai cliqué sur le bouton validé (submit).

    J'ai essayé de mettre mes <input...> après le traitement des variables, effectivement ca marche, mais je trouve étrange d'avoir les <input...> à la fin du script, il doit y avoir une autre méthode ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il faut comprendre que tu as 2 éléments différents dans ton script :
    • 1/ La récupération des données du formulaire
    • 2/ le formulaire lui-même


    Si tu veux ré-afficher les données reçues (ou, comme ici, faire une GESTION d'ERREURS), il faut bien faire le traitement AVANT le formulaire.

    Rien d'anormal à ça, bien au contraire : c'est la logique même.

  9. #9
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Par défaut
    Bonjour,

    D'accord, pas de soucis, ça me semblait bizarre de faire le traitement avant de déclarer le formulaire.
    Merci pour l'aide !

  10. #10
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    mouai enfin si c'est juste pour vérifier q'un champ est renseigné, autant faire le test en javascript plutot qu'en php une fois le formulaire transmis ...
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    En fait, le mieux c'est de le faire côté client (en JS par exemple, ou avec un attribut required) pour la partie "user-friendly-je-mets-le-champ-en-rouge", parce que c'est beaucoup plus pratique, ET côté serveur (en PHP) pour la validation "parce-que-si-c'est-vide-ça-va-planter", parce que tout ce qui se trouve côté client peut être modifié et/ou désactivé.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/02/2011, 19h39
  2. Réponses: 2
    Dernier message: 29/09/2009, 18h21
  3. Réponses: 3
    Dernier message: 24/04/2007, 20h09
  4. Changer la couleur d'une ligne dans un DBGrid
    Par fba dans le forum Composants VCL
    Réponses: 5
    Dernier message: 24/10/2005, 21h30
  5. Réponses: 8
    Dernier message: 14/05/2004, 12h18

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