Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > HTML / DHTML / XHTML
HTML / DHTML / XHTML Forum sur la programmation HTML / DHTML/ XHTML et la validation W3C. Cours (X)HTML, FAQ (X)HTML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2011, 20h56   #1
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
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 :
<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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 23h08   #2
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
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 :
<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.
__________________

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, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/08/2011, 15h20   #3
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
Je n'est pas compris grand chose....

Citation:
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) ?


Citation:
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
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 15h24   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
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...
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) ?
Heu... j'ai rien compris
Citation:
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 15h32   #5
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
@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:
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 15h43   #6
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
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 :
<a href="#">Lien</a>
Cela revient au même qui s'il y avait
Code html :
<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.
__________________

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, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 16h33   #7
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
Citation:
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 :
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).
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 16h43   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
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 JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 17h17   #9
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
Citation:
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 :
Citation:
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 ?


Citation:
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 05/08/2011, 17h46   #10
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
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.
__________________
"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
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 05/08/2011, 18h01   #11
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
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"
__________________

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, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h05   #12
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
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 !
__________________
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 JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h42   #13
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
Citation:
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.

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 !
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 19h02   #14
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
mon fichier PHP

Code :
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 :
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 22h34   #15
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
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
__________________

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, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2011, 14h05   #16
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 06/08/2011, 15h35   #17
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
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 JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/08/2011, 16h41   #18
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
Citation:
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.

Citation:
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é.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h45.


 
 
 
 
Partenaires

Hébergement Web