Page 1 sur 1

[Resolu] Ancres et php sur un seul fichier

Posté : 09 oct. 2007, 12:21
par Neomcdn
Bonjour,

J'ai créé un fichier php avec plusieurs listes de villes triées selon des critères de zone géographique. Nous avons donc des zones, des villes et des indications pour chaque ville au clic sur l'une d'elle (sur la même page).

Pour bien comprendre, le fichier est visible ici:

http://www.e-vendee.fr/mairies-vendee.php?zone=vendee
Pour simplifier l'utilisation du fichier, je souhaite identifier chaque ville avec une ancre et placer la liste sur cette ancre à chaque chargement du fichier (= à chaque clic sur l'une des villes).

Tous mes éléments ont été passés en session sauf l'ancre qui envoyée pour le moment en url.

Voici mon code:

Code : Tout sélectionner

<?php while ($row_rs_mairie = mysql_fetch_array($resultat)){ ?> <p><?php echo '<a name="ancre'.$row_rs_ville['etab_id'].'" href="mairies-vendee.php?zone='.$zone.'&ancre='.$row_rs_ville['etab_id'].'&mairie='.$row_rs_mairie['nom_ville'].'" title="Coordonnées de la '.$row_rs_mairie['nom_etab'].'">'.$row_rs_mairie['nom_etab'].'</a>';?></p> <?php if ($mairie == $row_rs_mairie['nom_ville']){echo '<table width="550" border="0"> <tr> <td colspan="2">'.$row_rs_mairie['nom_etab'].'</td> <td>'; if ($row_rs_mairie['url_site']<>''){echo '<a href="'.$row_rs_mairie['url_site'].'" target="_blank" title="Site de la '.$row_rs_mairie['nom_etab'].'">Site de la '.$row_rs_mairie['nom_etab'].'</a>';}?></td> </tr> <tr> <td colspan="3"><?php echo $row_rs_mairie['adresse_etab'].'</td> </tr> <tr> <td>'.$row_rs_mairie['cp_etab'].'</td> <td>'.$row_rs_mairie['ville_etab'].'</td> <td>&nbsp;</td> </tr> <tr> <td colspan="2">'.$row_rs_mairie['tel_etab'].'</td> <td>+ d\'infos</td> </tr> <tr> <td colspan="2">'.$row_rs_mairie['fax_etab'].'</td> <td>&nbsp;</td> </tr> </table>'?> <? } }?>
Voici mes requêtes:

Code : Tout sélectionner

mysql_select_db($database_conn_develop, $conn_develop); if ($_GET['zone']== ''){$_GET['zone']== 'vendee';} if ($_GET['zone']== 'vendee'){$query_rs_mairie = "SELECT * FROM tbl_etab, tbl_ville WHERE tbl_etab.ville_etab=tbl_ville.nom_ville AND type_etab='mairie' AND active=1 ORDER BY ville_etab ASC";} else{ $query_rs_mairie = "SELECT * FROM tbl_etab, tbl_ville WHERE tbl_etab.ville_etab=tbl_ville.nom_ville AND type_etab='mairie' AND active=1 AND zone_geographique='".$zone."' ORDER BY ville_etab ASC";} $rs_mairie = mysql_query($query_rs_mairie, $conn_develop) or die(mysql_error()); $row_rs_mairie = mysql_fetch_assoc($rs_mairie); $totalRows_rs_mairie = mysql_num_rows($rs_mairie); $resultat = mysql_query($query_rs_mairie); $query_rs_ville = "SELECT * FROM tbl_etab, tbl_ville WHERE tbl_etab.ville_etab=tbl_ville.nom_ville AND type_etab='mairie' AND active=1 AND nom_ville='".$mairie."' ORDER BY ville_etab ASC"; $rs_ville = mysql_query($query_rs_ville, $conn_develop) or die(mysql_error()); $row_rs_ville = mysql_fetch_assoc($rs_ville); $totalRows_rs_ville = mysql_num_rows($rs_ville);
Est-ce qu'une ancre ne fonctionnerait que sur le chargement d'une nouvelle page, ou est-ce que cela peut fonctionner sur la même page.

Auriez-vous une idée pour m'aider sur ce problème?

Merci par avance!

A +! :D

Posté : 09 oct. 2007, 14:05
par Berzemus
Si je te suis bien, tu parles bien des ancres html, il me semble. (Du coup, le sujet serait mieux placé dans la rubrique html)

les ancres html marchent aussi bien sur la page actuelle (<a href="#nomdancre">lienversancre</a>) que vers une ancre d'une autre page (<a href="autrepage.html#nomdancre">lienversancre</a>), si c'est ce que tu voulais savoir.

Au fait, mettre des indents dans ton code php et le mettre entre des balises php aiderait à la lecture de ton problème.

Posté : 09 oct. 2007, 15:07
par Neomcdn
Salut!

Merci pour ta réponse Berzemus!

Le problème était bien lié à php, puisqu'il fallait que toutes les variables soient passées avant l'ancre.

Voici pour le nouveau code (le bon!):

Code : Tout sélectionner

<?php echo '<a name="ancre'.$row_rs_mairie['etab_id'].'" href="mairies-vendee.php?zone='.$zone.'&mairie='.$row_rs_mairie['nom_ville'].'#ancre'.$row_rs_mairie['etab_id'].'">Lien</a>';?>
== On passe toutes les variables de session avant d'indiquer l'ancre. Mettre l'ancre avant les variables ou au milieu ne créée pas d'erreur, mais empêche le fonctionnement des variables comme de l'ancre.

@+!