ancre qui ne fonctionne pas sous IE

pat
Eléphant du PHP | 132 Messages

10 févr. 2008, 08:02

Bonjour,

J' utilise une ancre pour me déplacer dans ma page suite a la validation d' un formulaire.
<form name="form1" method="get" action="guide.php#1">
Cette action fonctionne parfaitement sous firefox mais ne fonctionne pas sous IE.

Que dois je faire.[/php]

Mammouth du PHP | 19672 Messages

10 févr. 2008, 10:17

Une ancre dans une url d'action, c'est une curiosité :-k

Cet attribut indique la page cible vers où seront envoyées les données saisies lors du clic sur ton bouton submit : cette page va récupérer et traiter ces données. Comme le traitement se passe coté serveur, c'est aussi coté serveur que tu vas définir ce que tu veux ensuite afficher.

J'avoue que j'ai un peu de mal à comprendre pourquoi tu souhaites positionner la page en question : est-ce la même page ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 févr. 2008, 10:30

Personnellement je n'ai jamais eu de problème... Si le traitement php se fait effectivement au niveau du serveur, la gestion de l'ancre est laissée au bon soin du navigateur :)

J'ai le cas pour une liste dont l'affichage peut être filtrée par un formulaire, ces derniers étant situés au milieu de ma page. Lorsque je soumet le formulaire et réaffiche la page filtrée, j'utilise une ancre pour redescendre au niveau de la liste et du formulaire et cela fonctionne aussi bien sous IE que FF...

As tu bien une balise <a name="1"></a> dans ton code ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 1511 Messages

10 févr. 2008, 12:13

En théorie, une ancre ne doit pas commencer par un chiffre, essaie avec des lettres et dis nous si ca fonctionne ;)

ViPHP
ViPHP | 4674 Messages

10 févr. 2008, 13:42

Empty Links and Screen Readers, ou Doit-on utiliser des liens vides ? Si quelqu'un a pensé « oui » je l'étrangle :twisted: (sans sommation).

Concernant les ancres, on apprend qu'on appelle ça des fragments en anglais. Regardons du côté des RFC 2396, et 3986, on y apprend la structure exact d'une ancre. On passe sur les détails ((pchar -> unreserved + pct-encoded + sub-delims + : + @) + / + ?). On note que les fragments peuvent commencer par une chiffre. Mais c'est un identifier, et ils ne peuvent pas commencer par un chiffre, et je ne retrouve cette foutue RFC qui le dit ... Ça me fout tout mon raisonnement à l'eau ça :(. Bref, une ancre ne commence par un chiffre, car c'est un ID et il doit être unique.

Au final, il est préférable d'écrire :

Code : Tout sélectionner

<h2 id="Mon_titre">Mon titre</h2>
plutôt que

Code : Tout sélectionner

<a name="Mon_titre"></a><h2>Mon titre</h2>
On notera que c'est également plus clair et plus logique.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

pat
Eléphant du PHP | 132 Messages

10 févr. 2008, 19:53

Merci pour vos réponses.

J'ai changé mon ancre par des lettres et ça marche.
La raison pour laquelle j'utilise une ancre est que j'ai 3 listes les une sous les autres et je déplace ma liste à chaque choix vers la liste suivante.

http://www.guidelabo.com/guide/guide.php

ViPHP
ViPHP | 4674 Messages

10 févr. 2008, 19:56

Si tu n'as pas besoin de recharger ta page à chaque fois, ne met que l'ancre (donc pas de nom de fichier avant l'ancre). Après ça dépend de ce que tu veux faire :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).