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

  1. #1
    Membre averti
    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
    Points : 305
    Points
    305
    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 émérite
    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
    Points : 2 411
    Points
    2 411
    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 averti
    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
    Points : 305
    Points
    305
    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
    Points : 91 220
    Points
    91 220
    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...

  5. #5
    Membre averti
    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
    Points : 305
    Points
    305
    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 émérite
    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
    Points : 2 411
    Points
    2 411
    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 averti
    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
    Points : 305
    Points
    305
    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
    Points : 91 220
    Points
    91 220
    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.

  9. #9
    Membre averti
    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
    Points : 305
    Points
    305
    Par défaut
    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.
    Il y a une incohérence dans tes propos puisque si le serveur se fou de l'ancre pourquoi celui-ci s'en sert pour positionner la page quand il l'affichera. De plus
    Eric2a dit :
    Tout le document est bien entendu entièrement lu et traité.
    Dans ce cas il n'y a pas de notion de positionnage dans un fichier. Alors positionnage ou pas ?


    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.
    Tout cela je l'ai bien compris puisque nous sommes dans le cas le plus simple ou le script PHP incorpore le formulaire HTML. J'ai bien compris que # appel le document lui-même mais mon cas n'est pas celui-ci.

    Comment le lien est fait entre mon code qui analyse les données du formulaire (un fichier php) et le formulaire (un fichier html) si on ne precise pas explicitement dans l'attribut action le nom du fichier php qui va justement traité les infos du formulaire.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour, bonjour!
    je passais par là et j'ai entendu du bruit ...
    Citation Envoyé par miltone Voir le message
    Dans ce cas il n'y a pas de notion de positionnage dans un fichier. Alors positionnage ou pas ?
    -> "positionnage" sûrement pas !
    -> "positionnement", oui.
    Citation Envoyé par miltone Voir le message
    ... si on ne précise pas explicitement dans l'attribut action le nom du fichier php qui va justement traité les infos du formulaire.
    Si tu étais moins occupé à hurler, peut-être écouterais-tu (lirais-tu) ce qu'on écris.
    Ca a été expliqué plusieurs fois dans les messages précédents...

    Quand ce n'est pas indiqué explicitement, alors c'est la page en cours qui est implicitement indiquée.

  11. #11
    Membre émérite
    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
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par miltone
    puisque si le serveur se fou de l'ancre pourquoi celui-ci s'en sert pour positionner la page quand il l'affichera
    Le serveur renvoie le document entièrement sans prise en compte de l'ancre qui ne lui sert à rien. C'est au client qu'il incombe de nous positionner.

    Par exemple pour l'adresse absolue
    http://example.com/script.php?id=1234#destination
    1) Le serveur traite et renvoie le fichier script.php?id=1234

    2) Le client l'affiche et nous positionne à l'endroit où se situe l'ancre nommée "destination"

    Et pour l'adresse relative
    #destination
    1) Le serveur traite et renvoie le document courant

    2) Le client l'affiche et nous positionne à l'endroit où se situe l'ancre nommée "destination"

  12. #12
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par miltone
    Il y a une incohérence dans tes propos

    C'est entre ce qui est écrit et ce que tu lis qu'il y a une incohérence...
    Citation Envoyé par Bovino
    L'ancre d'une URL permet de dire au navigateur où positionner la page quand il l'affichera.
    Jusqu'à preuve du contraire, le navigateur et le serveur, c'est pas exactement la même chose...
    Citation Envoyé par miltone
    Dans ce cas il n'y a pas de notion de positionnage dans un fichier.
    Arrête de croire que l'ancre va dire à PHP de ne s'exécuter qu'à partir d'une certaine ligne !
    PHP exécute le script, c'est-à-dire qu'il construit un document HTML pour l'envoyer au navigateur car le navigateur est incapable d'interpréter du PHP (tout comme PHP est incapable d'afficher une page).
    Ensuite, lorsque le navigateur interprète le contenu HTML qu'il reçoit, il positionne la page à l'endroit indiqué par l'ancre !

  13. #13
    Membre averti
    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
    Points : 305
    Points
    305
    Par défaut
    Arrête de croire que l'ancre va dire à PHP de ne s'exécuter qu'à partir d'une certaine ligne !
    Ok pour PHP mais il va bien dire au HTML alors de se positionner qu'a partir d'une certaine ligne. Puisque tu emploies le mot positionner il a bien une notion géographique dans le fichier.
    Sinon cela voudrait dire qu'on positionne une ancre à la fin d'un fichier HTML mais que celui-ci sera quand même exécuté entièrement. Si c'est le cas le terme de position est donc faux. Il ne positionne pas il lance tout simplement le fichier où est l'ancre.

    PHP exécute le script, c'est-à-dire qu'il construit un document HTML pour l'envoyer au navigateur car le navigateur est incapable d'interpréter du PHP (tout comme PHP est incapable d'afficher une page).
    Ensuite, lorsque le navigateur interprète le contenu HTML qu'il reçoit, il positionne la page à l'endroit indiqué par l'ancre !
    Encore une fois je te remercie de venir m'aider mais la tu me fais des explications trop théorique qui n'aide pas vraiment à la compréhension de mon soucis. Je suis d'accord avec toi mais je n'arrive toujours pas à comprendre. Peut être essayer de m'expliquer différemment serait plus judicieux. Car ton explication est surement exact mais compréhensible uniquement quand on a compris l'ensemble.

    Le mieux serais que je fournisse l'architecture et le bout de code concerné par mon incompréhension afin de mieux me faire comprendre et que vos explications soit plus efficace pour ne pas vous faire perdre votre temps.

    Je fait cela tout de suite.

  14. #14
    Membre averti
    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
    Points : 305
    Points
    305
    Par défaut
    mon fichier PHP

    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
    <?php
     
    $passage     = isset($_REQUEST['ACT'])?$_REQUEST['ACT']:'';
     
    switch ($passage)
      {
        case 'TryToLog'      : TryToLog();
                               break;
      
        case 'logout'        : // Déconnexion
        default              : AffFormLogin();
                               break;
      }
    }
     
    function AffFormLogin($bRetry=false)
    {
      $template->display('login.tpl'));
    }
     
    function TryToLog ()
    {
    }
     
    ?>
    ainsi que mon fichier template smarty (c'est du HTML!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {config_load file="libelle.conf" section="login"}
    {include file="_header.tpl" viewMenu="Off" onLoad="localLoad();" page="login"}
     
    <div id="formulaire" >
    	<form id="frm" name="frm" action="#" method="post">
    		<input type="hidden" name="ACT" id="ACT" value="TryToLog"/>
    		<input type="hidden" name="req" id="req" value="{$req}"/>
    		<table>
    		</table>
    	</form>
    </div>
     
    {include file="_footer.tpl"}

    Ainsi je passe d'abord dans mon fichier PHP et passe par le switch par défaut car ma variable $passage a été SETé à vide car le formulaire HTML n'a pas encore renvoyé le champs caché ACT afin de SETé $passage à TryToLog pour pouvoir valider la connexion.

    Ainsi je ne comprends pas comment le système fait-il pour revenir sur mon fichier PHP une deuxième fois puisque le script de mon formulaire HTML ne l'appel pas.

  15. #15
    Membre émérite
    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
    Points : 2 411
    Points
    2 411
    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

  16. #16
    Membre averti
    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
    Points : 305
    Points
    305
    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.

  17. #17
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Bon... on va tout reprendre du début

    Lorsque tu écris un message dans le forum et que tu le valides, tu retourne sur la page de la discussion à l'endroit de ton message sans que tu n'aies rien eu à faire.
    Si tu regardes l'URL, elle contient une partie paramètres (après le "?") et une ancre (précisée avec le caractère #).
    Lorsque tu cliques sur le bouton "Envoyer la réponse", tu fais une requête au serveur qui va construire une page en prenant en compte les paramètres, mais il ne se préoccupe pas de l'ancre.
    Une fois que la page est construite, le serveur l'envoie au navigateur qui va l'afficher. S'il y a une ancre, il va rechercher dans la page l'élément correspondant, s'il le trouve, il positionne au niveau de cet élément. S'il n'y a pas d'élément associé (en particulier s'il n'y a rien après l'ancre), il se positionne au début de la page.
    Si dans ta page tu mets un lien avec juste une ancre, par exemple
    le navigateur comprends que la cible du lien est la page en cours et comme il n'y a rien de nouveau utile au serveur dans l'URL, il en déduit qu'il n'est pas nécessaire de lui renvoyer une requête et déplace juste l'affichage vers cette ancre (essaye de supprimer ce qu'il y a après le dièse dans l'URL et valide, ça remontera en haut de la page).
    Mais dans le cas du action d'un formulaire, l'URL est modifiée (du moins en GET) et le navigateur comprend qu'il y a de nouveaux éléments qui risquent de modifier les informations à afficher, dans ce cas, il renvoie la requête au serveur pour la même page et positionne au niveau de l'ancre quand il reçoit la réponse.

  18. #18
    Membre averti
    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
    Points : 305
    Points
    305
    Par défaut
    Lorsque tu écris un message dans le forum et que tu le valides, tu retourne sur la page de la discussion à l'endroit de ton message sans que tu n'aies rien eu à faire.
    Si tu regardes l'URL, elle contient une partie paramètres (après le "?") et une ancre (précisée avec le caractère #).
    Lorsque tu cliques sur le bouton "Envoyer la réponse", tu fais une requête au serveur qui va construire une page en prenant en compte les paramètres, mais il ne se préoccupe pas de l'ancre.
    Une fois que la page est construite, le serveur l'envoie au navigateur qui va l'afficher. S'il y a une ancre, il va rechercher dans la page l'élément correspondant, s'il le trouve, il positionne au niveau de cet élément. S'il n'y a pas d'élément associé (en particulier s'il n'y a rien après l'ancre), il se positionne au début de la page.
    Effectivement j'ai encore quelques difficulté entre les traitement client et serveur. J'ai beaucoup mieux cerné l'ancre avec cette exemple. Merci beaucoup.

    Concernant mon problème j'ai trouvé ceci dans le manuel smarty mais rien d'autre qui puisse troubler ou empiété sur le fonctionnement standard d'un formulaire HTML.

    L'un des aspects unique de Smarty est la compilation des templates. Celà signifie que Smarty lit les
    templates et crée des scripts PHP à partir de ces derniers. Une fois créés, ils sont exécutés. Il n'y a donc
    pas d'analyse coûteuse de template à chaque requête, et les templates peuvent bénéficier des solutions de
    cache PHP comme Zend Accelerator (http://www.zend.com/) ou PHP Accelerator.
    Ainsi mon fichier .tpl lancé par mon script PHP de base, se transforme en script PHP. Ce qui signifie avec le formulaire que celui-ci s'auto appel une fois le formulaire posté.
    Mais ca ne m'explique toujours pas comment cela se fait que mon 1e script récupère quand même les informations du formulaire alors qu'il n'est pas appelé.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2015, 16h34
  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, 17h52
  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, 14h24
  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, 13h02
  5. caractère " dans un attribut
    Par menuge dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 16/06/2006, 18h49

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