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 :

Caractère # dans l'attribut action d'un form


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut Caractère # dans l'attribut action d'un form
    Salut à tous,

    Je suis en train d'étudier le code d'un site web en PHP et je tombe sur une incompréhension ma foi simple mais que même la W3C Schools ne peut répondre.

    A savoir que j'ai ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="frm" name="frm" action="#" method="post">
    Et je ne comprends pas la signification du # dans l'attribut action de la balise form. D'après ce qu'on peut lire partout il faut mentionner une URL or là ce n'est pas le cas.

    Alors que fait l'action du formulaire précisément si il n'appel pas de script après validation de l'utilisateur ?


    Merci à vous de votre aide.

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    Il s'agit de la propriété hash.

    Quand une URL contient un hash (#) suivi du nom de l'ancre le navigateur se positionne, dans le document cible, à l'emplacement où se trouve la définition du nom de l'ancre...

    Ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a name="destination"></a>
    ou là
    Dans le cas où seul le hash est présent (<a href="#"> ou <form action="#">), le navigateur appellera à nouveau la page courante.

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    Je n'est pas compris grand chose....

    Quand une URL contient un hash (#) suivi du nom de l'ancre le navigateur se positionne, dans le document cible, à l'emplacement où se trouve la définition du nom de l'ancre...
    Et comment le système fait pour connaitre le document cible si on ne reférence pas de document dans l'attribut ?

    Un système d'ancrage permet de commencer la lecture d'un script pour l'ancrage et de continué normalement la lecture du script (et donc de ne pas traiter tout ce qui se situe au dessus de l'ancre) ?


    Dans le cas où seul le hash est présent (<a href="#"> ou <form action="#">), le navigateur appellera à nouveau la page courante. Dans le cas où seul le hash est présent (<a href="#"> ou <form action="#">), le navigateur appellera à nouveau la page courante.
    La page courante étant un script de template smarty, celui-ci ne contient aucunes instruction de traitement du formulaire posté sur #. Donc aucun intérêt que ce script s'appelle lui-même et pourtant le code marche bien.

    Il y a donc quelque chose d'incomplet ou qui ne va pas dans ton explication si je peux me permettre. En tous cas merci de ton aide. Je pense qu'un dernier éclairage différent de ta part sur le même sujet me permettra de bien comprendre

  4. #4
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Et comment le système fait pour connaitre le document cible si on ne reférence pas de document dans l'attribut ?
    Dans ce cas, c'est le document en cours...
    Un système d'ancrage permet de commencer la lecture d'un script pour l'ancrage et de continué normalement la lecture du script (et donc de ne pas traiter tout ce qui se situe au dessus de l'ancre) ?
    Heu... j'ai rien compris
    La page courante étant un script de template smarty, celui-ci ne contient aucunes instruction de traitement du formulaire posté sur #. Donc aucun intérêt que ce script s'appelle lui-même et pourtant le code marche bien.

    La page en cours, c'est le document HTML généré et affiché dans le navigateur...
    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

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    @Bovino

    Tu place un ancrage dans un fichier et cela te permettra de cibler le commencement de la lecture de ce fichier à l'endroit de l'ancre et pas avant ?


    La page en cours, c'est le document HTML généré et affiché dans le navigateur...
    Le traitement de mon formulaire HTML est actionné par # donc le traitement du formulaire HTML est traité par du HTML ???
    Vraiment bizarre puisque mon code de traitement des données du formulaire n'est pas du HTML mais bien du PHP contenu dans un autre fichier.

  6. #6
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Citation Envoyé par miltone
    Et comment le système fait pour connaitre le document cible si on ne reférence pas de document dans l'attribut ?
    Il s'agit d'une URL relative. Etant donné qu'il n'y aucune information à part le hash, le document cible est le document courant.

    Par exemple, si la page index.php contient la balise
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#">Lien</a>
    Cela revient au même qui s'il y avait
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="index.php#">Lien</a>

    Citation Envoyé par miltone
    Un système d'ancrage permet de commencer la lecture d'un script pour l'ancrage et de continué normalement la lecture du script (et donc de ne pas traiter tout ce qui se situe au dessus de l'ancre) ?
    Tout le document est bien entendu entièrement lu et traité.

    L'ancrage est là pour le "confort" (côté client). En cas d'un document très long, il nous donne la possibilité de se positionner à un endroit précis du document en un clic.

    Citation Envoyé par miltone
    La page courante étant un script de template smarty, celui-ci ne contient aucunes instruction de traitement du formulaire posté sur #. Donc aucun intérêt que ce script s'appelle lui-même et pourtant le code marche bien.
    Je ne connais par le template smarty donc là, je ne peux pas trop dire. Mais bon si le script appelé fonctionne c'est qu'il y a bien un traitement. Je te suggère donc de te documenter sur ce système de template.

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    Je ne connais par le template smarty donc là, je ne peux pas trop dire. Mais bon si le script appelé fonctionne c'est qu'il y a bien un traitement. Je te suggère donc de te documenter sur ce système de template.
    Ce n'est pas une notion propriétaire du framework smarty pour PHP car il se base sur de l'HTML bien classique. On arriverait au même resultat si cela était uniquement un formulaire dans un fichier html.

    Mon code n'est rien d'autre que du HTML que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form id="frm" name="frm" action="#" method="post">
    <input type="hidden" name="ACT" id="ACT" value="TryToLog"/>
    Ainsi c'est le champ caché ACT que j'utilise dans mon autre fichier PHP pour conditionner les traitement. A savoir si il est passé par la page de login ou non.

    Je trouve bizarre que vous ne soyez pas choqué par le fait que le formulaire HTML renvoi par méthode post le contenu à lui-même (qui à la base n'est pas fait pour cela).

  8. #8
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu confonds plusieurs choses...
    L'ancre d'une URL permet de dire au navigateur où positionner la page quand il l'affichera. Il n'y a donc ici aucune notion de PHP ou de n'importe quel type de langage coté serveur, qui se fout royalement de l'ancre.
    Si une URL ne comporte pas de nom de page, alors elle est considérée pointer sur la page en cours, donc si ta page est index.php, une URL "#" équivaut à "index.php#".
    Donc quand tu valides ton formulaire, c'est le script index.php qui va être appelé, il aura la possibilité de récupérer les paramètres du formulaire, va générer une page HTML et l'envoyer au navigateur, qui lui prendra en compte l'ancre, mais pas les paramètres.
    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

  9. #9
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Citation Envoyé par Eric2a
    Je te suggère donc de te documenter sur ce système de template.
    Tiens, dans ce même forum il y a une section sur les templates smarty ainsi qu'une FAQ et des cours.

    Je pense que tu y trouveras la réponse

  10. #10
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    Concernant Smarty j'ai déjà au préalable effectué une connaissance du framework. Je ne pense pas que le problème de compréhension est du domaine de ce framework car celui-ci n'est qu'une petite couche utilisant HTML et ne dénaturant pas celui-ci.

    Néanmoins je vais faire un effort et revoir un peu la chose mais il est clair que si mon problème était si évident et simple que cela, j'aurais déjà depuis longtemps trouvé des réponses dans mon livre PHP et dans des tutos sur le web en PHP ou HTML. Malheureusement il n'en est rien.

    Si d'autres on quelques idées avant que je reviennes ils son les bienvenues. J'ai mis du code pour montrer exactement dans quel situation je me trouve.

    Merci à tous de votre précieuse aide.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2015, 15h34
  2. [Débutant] Attribut action d'un form runat="server"
    Par rokirakat dans le forum ASP.NET
    Réponses: 4
    Dernier message: 12/10/2011, 16h52
  3. [W3C] Ajout des paramètres dans l'attribut action d'un formulaire
    Par anaranjado dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/04/2010, 13h24
  4. l'attribut ACTION dans la balise FORM
    Par coco-sup dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/02/2007, 12h02
  5. caractère " dans un attribut
    Par menuge dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 16/06/2006, 17h49

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