Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 29/03/2006, 14h07   #1
Invité de passage
 
Inscription : mars 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 12
Points : 3
Points : 3
Par défaut problème avec un menu généré par MySQL

Bonjour,

je suis en train de créer un site et de façon à le garder extensible je ne travail qu'avec des bases de données ce qui m'évitera d'aller modifier le code .

Le problème se pose avec le menu.
Je récupère les informations du menu dans la base de données et je les affiche avec une boucle while :

while ($line = mysql_fetch_assoc($result))
{
echo "<tr>";
foreach ($line as $col_value)
{
echo "<td nowrap><a href=\"index.php\">$col_value</a></td>";
}
echo "</tr>";
}

L'affichage ne pose aucun problème.

La page index.php correspond à la page contenant le menu et diver éléments à l'aide d'include(avec une mise en page CSS).

Le menu sert à modifier ces éléments. Pour cela j'utilise une variable déclaré dans index.php avec une valeur par défaut.

Le menu que j'affiche sert à modifier cette variable.

Problème comment savoir sur quelle ligne l'utilisateur clic de façon à modifier ma variable en conséquence?

Je me suis dis avec un peu de JavaScript mais non la fonction OnClick() ne passe aucun paramètre.
J'ai aussi pensé à la position de la ligne mais celle-ci dépend des paramètres d'affichage de l'utilisateur.
Le passage de paramètre par l'url pourrait être une possibilité mais je n'ai pas réussi à la mettre en oeuvre et ça me génerai de voir ça dans l'URL.

Etant à cour d'idée je m'adresse à vous.

Merci à tous.
GhostDady est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 14h20   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Pas sûr d'avoir tout compris enfin...

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$i = 0;
while ($line = mysql_fetch_assoc($result)) 
{ 
echo "<tr>"; 
foreach ($line AS $col_value) 
{ 
echo '<td nowrap><a href="index.php?num=' . $i . '">$col_value</a></td>'; 
} 
echo "</tr>"; 
}
Après tu récupères la valeur num (qui correspond à ta variable) et tu fais le traitement... C'est ta solution avec passage de paramètres dans l'URL. Sinon il faut utiliser autre chose que PHP peut-être...
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 08h19   #3
Invité de passage
 
Inscription : mars 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 12
Points : 3
Points : 3
Merci de ton aide.

Je vais m'expliquer plus clairement:

J'ai un page index.php qui contient:
- une variable "element_a_afficher"
- include menu.php
- include element.php

Le contenu de la page element.php change en fonction de la valeur de "element_a_afficher"

La page menu.php fait appelle à une BDD (tableau deux dimensions Nom-court et Nom_complet) mon menu affiche les Nom_complet.

Lorsque je clic sur un élément du menu donc un Nom_complet la variable "element_a_afficher" doit prendre la valeur du Nom_court qui est associé au Nom_complet (même ligne dans la BDD).

La méthode $_get est a éviter de préférence à moins que l'on puisse masque les paramètres dans l'URL.

Merci.
GhostDady est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 10h01   #4
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
J'avais bien compris le problème donc. Je pense qu'il faut s'orienter vers une solution Javascript car je ne vois pas trop comment faire en tout PHP (sans mettre les paramètres dans l'URL). Bon courage.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 10h39   #5
Invité de passage
 
Inscription : mars 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 12
Points : 3
Points : 3
Même en JS je ne vois pas la solution car je n'ai aucun moyen de savoir sur quelle ligne a cliqué l'utilisateur.

En JS ce serai en fonction onclick() global au menu (c'est à dire la même fonction appellé quelque soit la ligne sur laquelle on click) et il n'y a aucun paramètre permettant de différencier la ligne du menu.

Quand à la position de la ligne elle va varier en fonction des paramètre d'affichage de l'utilisateur.

Je ne vois pas quoi utiliser pour contourner ce problème.

Je te remercie de ton aide.
GhostDady est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 10h45   #6
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Poste dans le forum JavaScript ils seront plus à même de t'aider que ici (enfin moi je peux plus t'aider sur ce terrain ).
Amara 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 22h54.


 
 
 
 
Partenaires

Hébergement Web