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 :

Champs grisés dans un formulaire


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut Champs grisés dans un formulaire
    salut, j'ai un formulaire avec des input text. certains sont préremplis par requêtes sql et ils sont placés en readonly lorsqu'ils sont préremplis.
    voila la fonction qui place le readonly :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function read_only($valeur)
    {
    	$val_read='readonly=readonly';
    	if($valeur!="")
    		return $val_read;
    }
    et dans un input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="text" name="prenom" id="prenom"  <?php echo read_only($prenom); ?> 
    value="<?php echo  "$prenom"; ?>" />
    donc ça marche très bien pour tous les champs contenant du texte : je vois le texte dans le champ grisé.
    En revanche pour tous mes champs qui contiennent des dates au format JJ/MM/AA je ne vois pas les dates dans les champs grisés alors qu'elles sont bien présentes en base de données.
    De plus si, sur les champ contenant les dates j'enlève l'appel à la fonction écrivant readonly, les dates s'affichent bien dans les champs(mais ils ne sont plus readonly).

    étrange byzarre.
    merci de votre aide

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par frboyer Voir le message
    salut, j'ai un formulaire etc ...
    Tout compte fait la vrais question est si j'ais compris :
    " A quoi sert le paramétre passé a la fonction "


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    function read_only($valeur)
    {
    $val_read='readonly=readonly';
    if($valeur!="") return $val_read;
    }
    A mon avis il faut TOUJOURS retourner val_read


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    function read_only($valeur)
    {
    $val_read='readonly=readonly';
    if($valeur=="") $val_read="";
    return $val_read;
    }

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    ça ne change rien malheureusement mais c'est un peu logique, que j'affiche une chaine vide ou que je n'affiche rien c'est pareil

  4. #4
    Membre actif Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Es que tu n'aurais pas un script javascript pour remplir tes dates qui pourrais ne pas aimer le readonly ?

    Tien nous au courant
    • Quand la discutions est terminée, cliquez sur , Pensez y !
    • Vous voyez un message pertinent et de qualité ? Votez pour ce message !

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    non les dates sont remplis à la mano et un script fais la vérification sur le format.
    par contre j'ai plusieurs champs dates et je viens de voir qu'un des champ fonctionne tout à fait en readonly alors que tous les autres non, ce qui est vraiment incroyable.
    je ne vois vraiment pas d'ou ça peut venir je vais regarder si j'ai pas fait une bourde quelque part

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par frboyer Voir le message
    non les dates sont remplis à la mano et un script fais la vérification sur le format.
    par contre j'ai plusieurs champs dates et je viens de voir qu'un des champ fonctionne tout à fait en readonly alors que tous les autres non, ce qui est vraiment incroyable.
    je ne vois vraiment pas d'ou ça peut venir je vais regarder si j'ai pas fait une bourde quelque part
    On emploie souvent des grands mots qui nous empéchent de se comprendre,
    moi j' ais crus en te répondant que ton PHP avait tout ce qu'il lui fallait lorsque le serveur envoie au visiteur, sa page HTML sa feuille de style et ses javascript !

    Or la j'ais quelques craintes en te lisant, serais-tu en train de dire que les dates sont traitées par un javascript ??? , mais quand le javascript se "met en route" , c'est que le PHP a tout envoyé au visiteur, il ne peut plus rien faire !!!

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    en effet je vais essayer de mieux m'expliquer :
    mon formulaire contient des champs dont certains sont contiennent des dates, certains sont préremplis par requêtes sql et php donc. par contre pour les champs dates, le format est vérifié par une fonction javascript avant envoi du formulaire, dans le on submit du form j'ai un return fonction_verif().
    comme ça si la fonction renvoi true j'envoi le formulaire, sinon ça bloque.
    ensuite, lorsque des champs sont préremplis comme je le disais, il doivent etre en readonly d'où la fonction php readonly qui affiche readonly si il existe une valeur.
    serais-ce plus clair?

  8. #8
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Normal, si t'affiches un "/" dans ton champ texte, tu pètes tout ton formulaire, suffit de voir le code source. En plus t'es en xHTML alors le caractère "/", il sert d'indicateur de fin de balise. Pour tes dates, tu dois convertir les caractères "/" avant de les afficher (htmlspecialchars, htmlentities).

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par frboyer Voir le message
    en effet je vais essayer de mieux m'expliquer :
    etc ...
    serais-ce plus clair?
    OUI OUI c' est même limpide, le sujet de ta question ( la fonction PHP dont tu nous parles) ne peux en aucun cas concerner de date "a traiter par javascript" ... car javascript et PHP communiques a travaers des moyens tordus dont on parle beaucoup ici

    Ou bien il sagit d'autre chose, j' expliques:

    Lors de la generation du HTML par le PHP, la date a déjas étée traitée (par exemple hier) par ton javascript puis le résultat stoqué dans une base de donnée ... alors Oui ça marchera car les dates peuvent étre traitées par
    jj/mm/aaaa , car ces caractéres sont traités simplement par le PHP et MYSQL
    par contre dans une chaine javascript il faut faire attention aux "\"

  10. #10
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Chengj Voir le message
    Normal, si t'affiches un "/" dans ton champ texte, tu pètes tout ton formulaire, suffit de voir le code source. En plus t'es en xHTML alors le caractère "/", il sert d'indicateur de fin de balise. Pour tes dates, tu dois convertir les caractères "/" avant de les afficher (htmlspecialchars, htmlentities).
    Escuses moi, mais pour répondre et aider ceux qui posent une question, il faut au maximum se controler,
    le "/" est un caractére de chaine basique et n'est pas du tout traité par htmlspecialchars...

  11. #11
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Chengj Voir le message
    Normal, si t'affiches un "/" dans ton champ texte, tu pètes tout ton formulaire, suffit de voir le code source. En plus t'es en xHTML alors le caractère "/", il sert d'indicateur de fin de balise. Pour tes dates, tu dois convertir les caractères "/" avant de les afficher (htmlspecialchars, htmlentities).
    j'ai écris qu'un champ contenant une date 25/12/09 s'affichait très bien donc ça pète pas tout le formulaire. si je ne met aucun readonly tout fonctionne, les dates s'affichent très bien suivant le format JJ/MM/AA sans problème.

    mais en fait je suis toujours pas sur de m'être bien fait comprendre j'ai du mal je crois : ma fonction javascript ne fait que vérifier que les dates sont au bon format et si ce n'est pas le cas ça affiche une alert et ça renvoie false pour pas envoyer le formulaire.
    ensuite mon formulaire est traité par une page php qui fait les insert into et update.
    c'est meux ou je suis à coté du vélo?

  12. #12
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par frboyer Voir le message
    j'ai écris etc ........c'est meux ou je suis à coté du vélo?
    Désolé mais a coté du vélo, du moins j'ais reçu 5/5 ! quand ton javascript intervient, il détruit la mise en page des dates, car le PHP n'est plus la , tu ne veux pas comprendre, que le PHP est sur le serveur, il génére son HTML et salut les amis, il disparait de l'affaire !

    Alors j'imagines un test utile !!

    Désactives le javascript, et ne lis que des valeurs ou justement il y a des dates ... ton formulaire devrait étre bien traité, puisque pour lui, ce sera un texte COMME UN AUTRE !!

    car si j'ais bien pigé, c'est le javascript qu'il faut que tu épluche , c' est lui qui te casse la maison

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/02/2006, 09h13
  2. Champ indépendant dans sous-formulaire
    Par lito74 dans le forum Access
    Réponses: 7
    Dernier message: 27/01/2006, 16h57
  3. Pb champ calcule dans sous formulaire
    Par Brial dans le forum Access
    Réponses: 6
    Dernier message: 12/11/2005, 18h33
  4. Réponses: 5
    Dernier message: 30/09/2005, 16h42
  5. Champs obligatoires dans un formulaire
    Par glloq8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/09/2005, 16h24

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