|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
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 :
<form id="frm" name="frm" action="#" method="post">
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. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
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 ou là Dans le cas où seul le hash est présent (<a href="#"> ou <form action="#">), le navigateur appellera à nouveau la page courante.
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
|
|
10
|
|
|
#3 | ||
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
Je n'est pas compris grand chose....
Citation:
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) ? Citation:
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
|
||
|
|
00
|
|
|
#4 | |||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
Citation:
![]() Citation:
![]() 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 ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|||
|
00
|
|
|
#5 | |
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
@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 ? Citation:
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. |
|
|
|
00
|
|
|
#6 | |||
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Citation:
Par exemple, si la page index.php contient la balise Cela revient au même qui s'il y avait Citation:
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:
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
|||
|
|
00
|
|
|
#7 | |||
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
Citation:
Mon code n'est rien d'autre que du HTML que voici : Code :
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). |
|||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
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 ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#9 | |||
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
Citation:
Eric2a dit : Citation:
Citation:
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. |
|||
|
|
01
|
|
|
#10 | ||
![]() ![]() |
Bonjour, bonjour!
![]() je passais par là et j'ai entendu du bruit ... Citation:
-> "positionnement", oui. Citation:
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.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
11
|
|
|
#11 | |
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Citation:
Par exemple pour l'adresse absolue http://example.com/script.php?id=1234#destination1) 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 #destination1) 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"
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
|
|
|
00
|
|
|
#12 | |||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
![]() C'est entre ce qui est écrit et ce que tu lis qu'il y a une incohérence... Citation:
Citation:
![]() 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 !
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|||
|
00
|
|
|
#13 | ||
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
Citation:
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. Citation:
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.
|
||
|
|
00
|
|
|
#14 | ||||
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
mon fichier PHP
Code :
Code :
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. |
||||
|
|
00
|
|
|
#15 | |
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Citation:
smarty ainsi qu'une FAQ et des cours.Je pense que tu y trouveras la réponse
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
|
|
|
00
|
|
|
#16 |
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
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. |
|
|
01
|
|
|
#17 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
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.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
10
|
|
|
#18 | ||
|
Membre régulier
![]() Développeur informatique Inscription : mai 2007 Messages : 431 ![]() |
Citation:
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. Citation:
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é. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com