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

HTML Discussion :

taille d'un champ input


Sujet :

HTML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut taille d'un champ input
    Bonjour à tous,
    Dans le code ci après, j'ai mis l'attribut maxlength afin que tous mes champs aient la même dimension.
    Cependant, je constate que maxlength n'est pas pris en compte.

    De plus, mon bouton submit mis après la boucle while ne renvoie pas sur la page escomptée ; le navigateur dit ne pas trouver la page !

    D'où viennent ces erreurs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     while($var=mysql_fetch_array($result)){
        extract($var);
    	echo '<form action="questionMaj.php" method="post">';
    	echo '<table border=\"0\">';
    	echo '<tr>';
    	   echo '<td bgcolor=\"#CCCCCC\">'.$mot.'<input type=\"text\" name=\"score[idMot]\" maxlength=\"20\" size=\"2\"</td>';
    	echo '</tr>';
    	}
        echo '<td colspan=2><br>';
    	   echo '<input type="submit" value="Envoyer">';
    	echo '</td>';
     
    	echo '<table>';
    	echo '</form>';
    Je remercie vivement la ou les personnes qui m'apporteront leur aide.

    Bonne journée

  2. #2
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=\"text\" name=\"score[idMot]\" maxlength=\"20\" size=\"2\"
    Il manque la fermeture de la balise du input : />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=\"text\" name=\"score[idMot]\" maxlength=\"20\" size=\"2\" />
    Il manque la fermeture de la ligne TR, juste avant celle qui ferme le table. Donc il manque un </tr>

    Une erreur aussi sur la balise qui ferme le tableau. <table> au lieu de </table>

    Tu indique un colspan="2" (une fusion de 2 cellules/colonnes) alors que le tableau comporte seulement 1 colonne.

    Si ton DOCTYPE c'est du XHTML, alors il est préférable de faire ceci : <br /> au lieu de ceci <br>. C'est valable pour tout ce genre de balise, comme les <input /> etc ...

    Le code HTML que tu fais est trop approximatif, ça déboussole complètement le navigateur. Faux être plus pointilleux sur ce point.
    Aide toi des outils, comme le plugin "webdeveloppeur" qui s'intègre à FireFox (par exemple), ou d'un éditeur plus évolué.


    Petite parenthèse qui n'a rien avoir
    A titre personnel, la fonction extract() est loin d'être la recette miracle, surtout dans le cadre où tu l'utilise.
    Pourquoi ne pas exploiter directement le tableau ?
    Comme $var['nom_du_champ'], c'est tout aussi bien, enfin, c'est même mieux.
    Si tu généralise cette pratique, un de ces 4 il va t'arriver des trucs pas clair, à en perdre la boule.
    Comme ça, juste pour info, j'utilise jamais extract(), jamais eu besoin.
    M'enfin, à chacun sa façon de faire, cela va de soit
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    maxlength c'est le nombre de caractère qu'on peut saisir dans le champ.
    Pour définir la taille, tu peux utiliser du CSS.

    Pour la page de destination, si tu as comme retour qu'elle n'existe, sous toute reserve, c'est ce c'est vrai.
    Fait attention aux majuscules / miniscules.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Merci pour vos réponses RunCodePhp et sabotage. J'aimerai comprendre pourquoi la fonction extract n'est pas la recette miracle ? Quelles peuvent être les conséquences d'utiliser cette superglobale ?

    Peux tu m'en dire un peu plus car ça m'intéresse énormément et comme je débute autant adopter de suite les bonnes pratiques.

    Merci encore et bonne soirée

  5. #5
    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
    Disons qu'en 1er extract() n'est pas une super global, mais juste une fonction.
    Ca extrait les valeurs d'un tableau pour en transformant en variables.
    Il cependant en 2ème argument (par défaut il vaut EXTR_OVERWRITE) qui fait que si une variable du même nom existe, elle sera écrasée. Rien que ça suffit pour se poser les bonnes questions.

    Ensuite, j'ai précisé que SI tu généralise cette façon de procéder, tu prends le risque que le extract() vienne un jour écraser une variable déjà existante et cela par simple oubli, accident ou non précaution.
    Il faudra alors bien connaitre son projet pour en déduire que la cause viendrait de cette fonction.
    Donc cette pratique demande de connaitre le nom de chaque champ de toutes tes tables pour éviter de créer une variable du même nom, sinon, il y aura un risque, c'est certain.

    Idem, si tu applique un extract() pour tous les tableaux de ton application (comme le SESSION, GET, POST, et aute ...), ça va faire tellement de noms de variables à faire attention que cela deviendra tout simplement ingérable.


    Bref ... toujours est il que j'ai vu dans un autre de tes topic (forum Php) que tu l'utilisais aussi pour le tableau SESSION, je te déconseille fortement de ne pas le faire ici. Au moins ça.
    De plus, (et si tu avais lu la doc sur cette fonction) il aurait au moins fallut mettre comme valeur EXTR_REFS au 2ème paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extract($_SESSION, EXTR_REFS)
    Le plus simple, c'est d'exploiter ce tableau, fait référence directement aux éléments, comme $_SESSIONS['mon_element'], c'est plus simple, nettement plus sécurisé, et un simple coup d'oeil dans son code on sait à quoi ça correspond.
    A l'inverse, un $mon_element qui a été extrait de la session devient une banale variable (saut si on précise EXTR_REFS), mais là ça demande quand même de savoir que cette variable est particulière (une variable de session).
    Genre de truc qui au bout d'1 an on oubli, et puis ce jour là on risque de faire une tonne de bêtise, genre la renommer, etc ...
    Ingérable, tout simplement.

    Ici, cette pratique ne fait que rendre les choses plus compliquée, autant l'abandonner.
    -> Un peu de lecture sur la Doc Php Officielle : http://fr2.php.net/manual/fr/function.extract.php
    Tu constateras qu'il y a pas mal de recommandations, d'avertissement sur l'usage de cette fonction.


    Et puis parcourt le forum, regarde comment les autres font, tu constateras que très peu de codeurs utilisent cette fonction, autant dire personne tellement il y a peu.
    Tout ça pour dire que cette fonction ressemble beaucoup à une recette miracle, mais c'est une illusion, elle ne fait que rajouter de la complexité.
    Franchement, ça sert à rien, mais c'est un conseil.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    echo '<td bgcolor=\"#CCCCCC\">'.$mot.'<input type=\"text\" name=\"score[idMot]\" maxlength=\"20\" size=\"2\"</td>';
    Tu ne dois pas echaper les double quotes(") d'un string dans des simple quotes(').

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pour définir la taille, tu peux utiliser du CSS.
    Ou l'attribut size
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [UI] autocomplete : modifier taille du champ input
    Par fabrice91 dans le forum jQuery
    Réponses: 5
    Dernier message: 01/03/2013, 12h41
  2. modifier la taille d'un champ input
    Par AmineDev9 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 17/04/2008, 22h18
  3. Champ input et href
    Par licorne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 21/03/2005, 16h53
  4. comment recuperer deux valeurs de deux champs input
    Par trialrofr dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/02/2005, 22h08
  5. Problème de contrôle de champ input texte
    Par NATHW dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/10/2004, 22h48

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