Fonction php déclencé par un bouton [Résolu] - PHP - Programmation
Marsh Posté le 14-05-2008 à 11:30:11
Ben y'a rien à faire. Tu mets dans le paramètre action du form le script PHP à exécuté, avec dedans le contrôle à faire.
Marsh Posté le 14-05-2008 à 11:37:40
Si je suis ce que tu me dis :
Code :
|
Ca ne marche pas et ça ne doit pas être cela, soit plus précis, merci !
Marsh Posté le 14-05-2008 à 11:41:48
Nanan, ça marche pas comme ça. Pour toute interaction faut passer par le serveur. Pour envoyer le formulaire, le navigateur a besoin d'une URL, donc tu lui files l'url d'un script, genre :
Code :
|
Et après sur ton serveur, t'as un fichier controle.php où tu mets ce qu'il faut.
Dis-toi bien qu'il n'y a aucune liaison entre l'HTML et le PHP comme ça, il faut tout passer par des requêtes
Marsh Posté le 14-05-2008 à 11:42:07
Tu confonds javascript et php (langage serveur <> langage client => http://forum.hardware.fr/hfr/Progr [...] 526_1.htm)
Bref, quant tu fais onClick="Controle()", le navigateur comprend que sur un clic, il va chercher la fonction javascript Controle et non la fonction php
Et puis ca : action="index.php?index.php?recuperation_formulaire", c'est du n'importe quoi, ce serait plutot action="index.php?page=recuperation_formulaire" ou action="recuperation_formulaire.php"
edit : bon ben, méga
Marsh Posté le 14-05-2008 à 11:55:18
Tout d'abord merci pour la précision sur l'action et le onClick !
Pour ce qui est du coté serveur-client je l'avais en tête mais ça se mélange à force :s
Mon problème est que si je revois mon form vers une page Controle.php j'ai un soucis au niveau de ce que me retourne ma controle car il affiche les erreurs directement ! et non plus sur ma page du formulaire !
Code :
|
C'est pour cela qu'il faudrait que je garde mon script php sur la même page que mon formulaire pour pouvoir rester sur le formulaire et afficher les erreurs.
Et lorsque je n'ai plus d'erreurs être redirigé vers le résultat de ce formulaire(tableau avec les valeurs des variables)
Meci pour votre aide mais je suis pas sortit encore ...
Marsh Posté le 14-05-2008 à 12:01:23
Ouais, le navigateur n'affiche que ce qu'on lui donne. Donc à toi de regénérer le formulaire avec les erreurs et valeurs déjà saisies. Faut tout faire à la patte.
Marsh Posté le 14-05-2008 à 14:37:27
alors une solution serait de :
Marsh Posté le 14-05-2008 à 15:26:57
Je tente le coups dessuite ... merci
Edit : alors je vais de mettre ton idée en place et elle fonctionne parfaitement pour l'exécution de mon script de contrôle, merci !
Maintenant il ne me manque plus que à faire une redirection quand mon contrôle et bon ...
Marsh Posté le 14-05-2008 à 16:02:57
wifsimster a écrit : Maintenant il ne me manque plus que à faire une redirection quand mon contrôle et bon ... |
include ou location (ca dépend de ce que tu veux à la fin)
Marsh Posté le 14-05-2008 à 16:06:37
Après avoir fait le contrôle, j'aimerais aller sur une page qui reprend toute les informations rentrées.
Je ne vois pas comment faire avec un include ou tu veux dire un require ?
Code :
|
Quelque chose dans le genre peut être ...?
Marsh Posté le 14-05-2008 à 16:11:58
wifsimster a écrit : avec un include ou tu veux dire un require ? |
REquire et include font en gros la même chose....
Marsh Posté le 14-05-2008 à 16:14:17
Je sais, je sais
Mais au vu de mes résultats
Code :
|
Ne fait strictement rien !
Code :
|
Me produit ce code d'erreur :
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\...\formulaire.php:8) in C:\xampp\...\formulaire.php on line 527
C'est surement une très grosse erreur de ma part mais je doit être aveugle ou ne pas avoir assez de connaissances
A ce que j'ai compris header c'est ce que renvoie le serveur au navigateur.
Je veut juste une redirection php ='(
Edit :
Les redirections sont des en-têtes HTTP. Or, selon le protocole HTTP, le en-têtes HTTP doivent être envoyés avant tout autre type de contenu, ce qui signifie qu'aucun caractère ne doit être envoyé avant l'appel de la fonction header, pas même un espace !
En d'autre termes, la fonction header() doit impérativement être utilisée avant tout code HTML.
Je crois avoir compris, mais comment alors faire une redirection dans un script php !
Logiquement mon script est interprété lors du chargement et donc il ne devrait pas avoir de header sur ma page...
Je suis perdu
Marsh Posté le 14-05-2008 à 16:58:47
ReplyMarsh Posté le 14-05-2008 à 17:06:07
wifsimster a écrit : Help !!!!! |
Issu de la FAQ php (http://forum.hardware.fr/hfr/Programmation/BiblioLinks/faq-php-update-sujet_16526_1.htm) : "La fonction header doit être placée avant tout sortie (code HTML, msg d'erreur PHP etc...) vous pouvez avoir 20 Mo de code php avant, du moment que ça n'affiche rien."
Donc vérifie que tu n'envoies pas de HTML avant d'utiliser le location....
Marsh Posté le 14-05-2008 à 17:13:32
Code :
|
Voici la condition dans laquelle rentre le script si il n'y a aucune erreur, donc soit je ne vois pas le problème dans mon script soit j'ai du code qui se balade avant, mais le script n'est t'il pas traité en premier lors du contrôle ?
Edit:
Je viens de mettre mon script en premier même avant mon :
Code :
|
J'ai le même problème de cette manière, j'en conclu donc que c'est mon script php qui doit me sortir un echo quelque par
Voici ce que se passe en détail dans le contrôle :
Code :
|
J'ai tout une liste de contrôle (if) de ce type dans mon script, je ne vois pas du tout où j'écrirais un quelconque code avant le header !
Marsh Posté le 14-05-2008 à 19:01:29
Bon bon bon, en cherchant j'en suis arrivé au point où il faut absolument que mon header de redirection soit situé au début de mon code pour que cella fonctionne correctement.
Or pour le bon fonctionnement de mon programme je ne peut pas insérer tout mon script au début du code !
-.- Encore de nouveau un problème ...
Marsh Posté le 14-05-2008 à 19:03:20
wifsimster a écrit : Or pour le bon fonctionnement de mon programme je ne peut pas insérer tout mon script au début du code ! |
Il le faut. C'est un problème d'organisation. Beaucoup de gens programment la validation d'un formulaire au milieu du code HTML. Faut un peu séparer tout ça
Marsh Posté le 15-05-2008 à 09:10:16
J'ai réussis hier soir, c'est bon la partie de mon script qui ne pouvais pas bouger, n'a pas bougé
Avec une petite variable qui déclenche mes echo, le tour est joué
Merci pour tout surtout babasss qui m'a bien aidé
Marsh Posté le 14-05-2008 à 11:25:56
Bonjour,
Voilà tout est dans le titre, j'aurais aimé savoir comment déclencher une fonction php à l'aide d'un bouton ?
Voici une partie de mon code :
Ceci est la base de mon formulaire, ce que je voudrais faire c'est que lorsque je clique sur "Valider" ma fonction php permettant de valider mon formulaire s'exécute.
recuperation_formulaire.php étant l'affichage de mes variables du formulaire, qui lui est bien renvoyer lors du submit mais pas ma fonction Controle() !
Merci d'avance pour vos réponses !
Message édité par wifsimster le 15-05-2008 à 09:14:03