Clic sur un menu Html pour executer un code php

Eléphanteau du PHP | 11 Messages

23 janv. 2008, 09:05

Bonjour à tous,

Je suis novice ee php et html et vu qu'il y a un début à tout alors j'apprend.
J'ai déjà étudié sur le site http://www.siteduzero.com (super tuto) afin d'évoluer en programmation Web.
En revanche je n'ai pas trouvé se dont j'avais besoin, j'essais par le clic d'un menu d'éxecuter du code php mais uniquement lors du clic.

Je m'explique :

"J'ai un menu Utilisateur avec des sous-menu, lorsque je clic sur Liste (dans utilisateur) je veux executer mon code PHP pour qu'il m'affiche mes valeurs dans un tableau (sa c'est ok). Le problème c'est que je ne sais pas comment renvoyé mon appel vers mon code PHP."

Est-ce que vous pouvez m'aider ou m'orienter vers une autre solution ?

Je vous remercie à tous d'avance.

A bientôt.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 janv. 2008, 09:20

Il va falloir te tourner vers la mise en place d'un fonctionnement AJAX.
Très brièvement, l'AJAX, c'est l'appel d'un script PHP via un bout de code Javascript. Pour ta demande, il va falloir que tu lances une requête AJAX au clic sur le bouton.

Voici une introduction à l'AJAX.
Je tiens tout de même à te prévenir qu'en utilisant l'AJAX, tu vas franchir un pas dans l'apprentissage du développement web. Donc, il vaut mieux que tu confortes tes bases avant de te lancer là-dedans, mais si tu t'en sent capable, cet apprentissage te seras utile.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

d0m
Mammouth du PHP | 1141 Messages

23 janv. 2008, 09:23

Sinon tu peux recharger ta page avec en paramètre une valeur disant que le bouton/lien a été clické.
Tout dépend de la quantité d'informations et de requêtes à executer sur ta page.

Eléphanteau du PHP | 11 Messages

23 janv. 2008, 10:13

Merci à tous les 2 pour vos réponses, je vais m'orienter vers l'AJAX cela me permettra d'évoluer vers un autre langage.
Pas très simple la programmation Web c'est limite un gros saladier où on ajoute pleins de sauces mais bon c'est ce qui fait son gout :wink:

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2008, 10:51

On pourrait t'orienter plus précisément si tu décrivais mieux le fonctionnement de ta page. Il est possible qu'AJAX soit surdimensionné pour ce que tu veux faire.

Cela pourrait peut-être se faire simplement en php ou avec un petit bout de code javascript :-k

Eléphanteau du PHP | 11 Messages

23 janv. 2008, 11:41

J'ai une barre de menu (verticale) que j'ai fait en utilisant les balises <ul> et <li>. Dans ce menu j'ai :

Utilisateur --> Liste
--> Gestion
--> Rechercher
-----------------------------
Machine --> Pas encore défini
-----------------------------
Zone
Géographique --> Pas encore défini
-----------------------------


Lorsque je vais sur le menu "Utilisateur" et que je clique sur le sous menu "Liste" je veux qu'il s'affiche dans un tableau la liste de tout mes utilisateurs sur la même page.

Je ne sais pas comment faire pour ordonner à mon code PHP de s'éxecuter unique lors du clic sur le menu "Liste" uniquement celui là pour les autres ce sera un autre code.

J'espère que ma description sera assez claire sinon dit le moi.

Merci d'avance

d0m
Mammouth du PHP | 1141 Messages

23 janv. 2008, 11:49

Dans ce cas, tu as 3 traitements completement différents selon le lien que l'utilisateur clique.
Autant alors recherger la page avec en paramètre le choix de l'utilisateur (liste,gestion,...)

Tu testes dans ta page la valeur du paramètre et suivant celle ci, tu fais des traitements différents.

Eléphanteau du PHP | 11 Messages

23 janv. 2008, 14:29

Merci pour l'info,

J'ai une dernière question comment est-ce que je fais pour tester le choix de l'utilisateur ? C'est ma grande question.

Merci

d0m
Mammouth du PHP | 1141 Messages

23 janv. 2008, 14:44

En visualisant le procédé :
- arrivée sur une page PHP.
- clique sur liste
- la page est rechargée ou une nouvelle page est chargé

si liste est un lien par exemple, il faut bien lui préciser une url. Il suffit alors de rajouter un paramètre qui va indiquer à la page chargée qu'on vient de cliquer sur le lien liste.
ex:

Code : Tout sélectionner

<A href="lapage.php?action=liste">
Il suffit ensuite de récupérer le paramètre et selon sa valeur (par exemple liste), faire le traitement adéquat

Eléphanteau du PHP | 11 Messages

23 janv. 2008, 16:46

d0m excuse moi mais je ne vois pas trop.
Pourquoi relancer ma page car des que je l'a charge il m'affiche tout de suite ma liste utilisateur et ça je ne le veux pas donc pour moi des que j'ouvre ma page html je dois avoir une condition sur ce code php qui dit "si clic sur liste alors execute code" et non à l'ouverture de la page execute code.
Je crois que j'ai du mal à m'expliquer.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 janv. 2008, 17:07

Ce que dOm te propose, c'est de mettre un paramètre dans ton url qui te permette de savoir s'il faut afficher la liste des utilisateurs ou non.

Du coup, au 1er chargement de la page, si ce lien n'est pas présent, tu n'affiches pas la liste des utilisateur, et lors du clic, tu recharges la même page en transmettant un paramètre dans l'url pour qu'il affiche la liste des utilisateurs ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

d0m
Mammouth du PHP | 1141 Messages

23 janv. 2008, 17:15

Sinon il y a l'ajax mais là il faut déjà avoir certaines bases en PHP et de plus il ne me semble pas que dans ton cas ça soit approprié.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 janv. 2008, 17:55

Pour l'AJAX, je pense qu'il faut plus de base JS que PHP.
Mais comme certaines librairies permettent d'encapsuler cette couche JS dans la présentation AJAX, ça pourrait être une solution.
Voir YUI
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 11 Messages

23 janv. 2008, 22:24

Merci de vous donnez autant de mal pour m'aider.
Si je comprend bien il faut que je mette dans le href de mon menu "Liste" une variable qui lors du clic me permettra de rafraîchir ma page et de donner l'ordre d'exécuter le code php par l'intermédiaire de ma condition.


<href = mapage.php?nom_de_ma_variable=1> (pour mon menu "Liste") et pour mon code PHP if ($_GET['nom_de_ma_variable'] == 1) { mon code; }

Est-ce que c'est ça ?

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2008, 23:17

Merci de vous donnez autant de mal pour m'aider.
Si je comprend bien il faut que je mette dans le href de mon menu "Liste" une variable qui lors du clic me permettra de rafraîchir ma page et de donner l'ordre d'exécuter le code php par l'intermédiaire de ma condition.


<href = mapage.php?nom_de_ma_variable=1> (pour mon menu "Liste") et pour mon code PHP if ($_GET['nom_de_ma_variable'] == 1) { mon code; }

Est-ce que c'est ça ?
Oui mais il faut vérifier ta variable avant de pouvoir la comparer donc dans ton code php il faut plutôt écrire

if (isset($_GET['nom_de_ma_variable']) &&  $_GET['nom_de_ma_variable'] == 1) { mon code; }