récupérer une variable dans une fonction [PHP] - PHP - Programmation
Marsh Posté le 12-07-2005 à 13:15:03
Utilise $_GET['nb'] tu n'auras pu ce genre de probleme car $_GET est un tableau super global tout le temps visible.
Marsh Posté le 12-07-2005 à 13:17:59
Merci pour ta réponse et ta rapidité =)
mais ca n'a pas l'air de fonctionner, soit je suis vraiment mauvais...
j'ai mis $nb = $_GET['nb']; devant les deux fonctions, puis j'ai essayé de le mettre dans les deux fonctions et j'obtiens bien la valeur de nb dans ma première fonction, mais toujours pas dans la deuxième.
Marsh Posté le 12-07-2005 à 13:35:43
j'ai commencé les fonctions hiern donc ce que je dis est a prendre avec des pincettes mais, j'pense que tu devrais rajouter
global $nb; dans ta function
Marsh Posté le 12-07-2005 à 13:43:13
C'est justement ce que j'avais fait, mais celà fonctionne dans la première et pas dans la deuxième :s
Marsh Posté le 12-07-2005 à 13:56:50
Y'a pas besoin de 'global' si tu récupères directement dans GET.
Mais en effet, fait voir ton code.
Marsh Posté le 12-07-2005 à 14:11:32
Mon code fait 600 lignes, si vous voulez vraiment le voir, je peux vous donner une url.
Sinon, il est structuré comme ca :
Code :
|
Code :
|
J'ai encore essayé d'autres combinaisons par désespoir mais toujours rien...
Marsh Posté le 12-07-2005 à 14:18:48
J'essaie
Marsh Posté le 12-07-2005 à 14:21:49
T'as pas compris, c'était du second degré. Je disais que dans le code que t'as posté, t'as viré la ligne que j'ai mis. C'était pour de rire.
Normalement t'aurais dû voir que mettre $nb à NULL est complètement stupide
Marsh Posté le 12-07-2005 à 14:26:11
Erf, ok ^^
Dans mon désespoir, je suis prêt à tout essayer !
Marsh Posté le 12-07-2005 à 14:32:59
sielfried a écrit : Y'a pas besoin de 'global' si tu récupères directement dans GET. |
mais vu qu'il met son get dans une autre variable sa marche pu non ?
Marsh Posté le 12-07-2005 à 14:40:11
snarky a écrit : mais vu qu'il met son get dans une autre variable sa marche pu non ? |
Nan, faut voir selon ce qui l'arrange.
Sinon r3llik, essaie de réduire ton problème à un code minimal, et ensuite poste-le, en entier.
Marsh Posté le 12-07-2005 à 14:57:13
Réduire... je l'ai réduit ci-dessus, je ne fait qu'utiliser $nb ensuite dans mes fonctions
Si il faut changer de nom de variable dans la deuxième fonction, histoire d'avoir par exemple $nb et $nb2 ca ne me dérange pas.
Tout ce que je voudrais c'est que je puisse récupérer la valeur nb située dans le lien, dans mes deux fonctions.
En tout cas merci de votre soutient, et si je ne montre pas plus du code, c'est juste pour vous éviter de trop chercher, je pense que la solution n'est pas loin...
Marsh Posté le 12-07-2005 à 15:18:08
Tu dois pouvoir la récupérer (avec ta deuxième "solution" en tout cas). Y'a aucune raison.
Le problème doit être ailleurs.
Marsh Posté le 12-07-2005 à 15:19:45
Quand je dis réduis, c'est réduire à une page PHP fonctionnelle qu'on puisse éventuellement tester.
Marsh Posté le 12-07-2005 à 15:22:40
et si tu passais ton $_GET['nb'] dans ta fonction ???
genre :
Code :
|
et pour ta fonction :
Code :
|
Marsh Posté le 12-07-2005 à 16:41:36
r3llik a écrit : Mon code fait 600 lignes, si vous voulez vraiment le voir, je peux vous donner une url.
|
C'est normal que ta fonction Reservation ne reçoit pas la variable $_GET['nb'], puisque selon la condition, elle est appellée suite à un formulaire de type "post"
Donc s'il est de type "post", il n'y a aucune variable de type get
Essaie de mettre $_REQUEST au lieu de $_GET (REQUEST contient à la fois les tableaux POST et GET), sinon, inclus une variable cachée dans ton formulaire, avec pour valeur $nb, et ensuite tu pourra y accéder par $_POST.
Marsh Posté le 12-07-2005 à 17:02:30
Ben spa parce qu'il y a un form en post qu'il peut pas y avoir du get avec.
Pis ça marcherait pas dans une fonction sur deux a priori.
Marsh Posté le 12-07-2005 à 17:08:46
Une révélation ?!? Voilà ce que j'attendais en allant me balader...
Ca à l'air de fonctionner ce truc, je devrais le faire plus souvent...
Le problème était effectivement autre part.
Pour exécuter la deuxième fonction, le script recharge la page... et bien entendu j'ai omis de renseigner la valeur de nb dans le lien du rechargement...
Citation : |
Moi aussi
En tout cas, un grand merci pour votre aide et désolé pour l'erreur IDIOTE.
Marsh Posté le 12-07-2005 à 17:08:47
sielfried a écrit : Ben spa parce qu'il y a un form en post qu'il peut pas y avoir du get avec. |
Ben oui, ça ne marche pas dans une fonction sur deux
Et sinon, dans son utilisation, je pense très fortement qu'il n'ait pas mis d'action genre "action.php?toto=3" quoi
Marsh Posté le 12-07-2005 à 17:13:48
Je mets cà sur le compte de la fatigue
sinon, ca marche impec maintenant : www.lta-tennis.be/test/
Marsh Posté le 12-07-2005 à 17:21:35
skylight a écrit : Ben oui, ça ne marche pas dans une fonction sur deux |
Jvois pas pourquoi $nb = $_GET['nb'] aurait marché si y'avait aucun GET.
Marsh Posté le 12-07-2005 à 17:36:55
Regarde bien sa condition, une page est appellée suite à un formulaire (donc si la variable était en URL, elle ne l'est pas forcément après validation du formulaire)
D'où ma parenthèse sur le action="index.php?nb=valeur", s'il n'a pas persévéré sa variable, elle est perdue.
Marsh Posté le 12-07-2005 à 17:40:04
Bon j'ai toujours pas compris où tu veux en viendre (vu que les deux fonctions sont appelées exactement dans le même if, après validation du form, et qu'une marche et pas l'autre), mais on va dire que ça n'a plus beaucoup d'importance.
Marsh Posté le 13-07-2005 à 11:44:28
C'que je veux dire c'est que Tableau() n'est pas forcément appellée suite à une soumission de formulaire, donc possible présence de variable $_GET (contrairement à Reservation() qui est appellée systématiquement suite à une soumission de formulaire (notamment $_POST['action'] qui vaut 'ok') et donc probable absence de variable $_GET
Enfin,
Marsh Posté le 13-07-2005 à 11:50:37
Ah ok, j'l'avais pas vu comme ça.
Marsh Posté le 12-07-2005 à 13:11:57
Bonjour,
Une bêtise je suppose, mais je reste néanmoins callé dessus...
mon lien est du type : index.php?nb=x
J'ai deux fonctions dans mon script :
function Tableau() et function Reservation()
je récupère la valeur de $nb dans ma première fonction avec global $nb
mais lorsque je veux également récupérer la valeur de $nb de la même manière dans ma deuxième fonction, celà ne fonctionne pas...
et je ne comprend pas pourquoi...
Merci d'avance