A voir également:
- Transmettre des données de page en page php
- Supprimer une page word - Guide
- Word numéro de page 1/2 - Guide
- Mettre google en page d'accueil - Guide
- Comment traduire une page - Guide
- Créer une page facebook - Guide
5 réponses
manirac
Messages postés
37
Date d'inscription
lundi 1 septembre 2008
Statut
Membre
Dernière intervention
22 septembre 2008
6
1 sept. 2008 à 23:39
1 sept. 2008 à 23:39
Si tu ne veux pas utiliser de Javascript, le mieux est de renvoyer systématiquement l'utilisateur vers une page intermédiaire en php. Il faut simplement envoyer à cette page une valeur qui indiquera quel bouton l'utilisateur a cliqué.
En fonction de cette valeur tu utilises l'instruction php header pour renvoyer vers l'une ou l'autre de tes pages.
<form name="questionnaire" action="intermed.php" method="post">
</table>
<table align="center">
<tr><td>
<input type="hidden" name="reponse" value="<?php echo $part; ?>">
<input type="hidden" name="tpsInit" value="<?php echo $tpsInit; ?>">
<input type="hidden" name="estaccepte" value="TRUE">
<input type="submit" value="next experiment">
</td></tr>
<tr><td>
<input type="hidden" name="reponse" value="<?php echo $part ?>">
<input type="hidden" name="tpsInit" value="<?php echo $tpsInit; ?>">
<input type="hidden" name="estaccepte" value="FALSE">
<input type="submit" value="withdrawn">
</form>
</td></tr>
</table>
...
puis dans page intermed.php
<?php
if ($_POST['estAccepte']=='TRUE') {
header("location:vignette2.php?tpsInit=$_POST['tpsinit']&reponse=....'")
}
else {
header("location:refusVign3.php?tpsInit=$_POST['tpsinit']&reponse=....'")
}
Evidemment, je n'ai pas testé avant de poster ce message.
Mais, je pense que ça doit marcher.
Bon courage !
En fonction de cette valeur tu utilises l'instruction php header pour renvoyer vers l'une ou l'autre de tes pages.
<form name="questionnaire" action="intermed.php" method="post">
</table>
<table align="center">
<tr><td>
<input type="hidden" name="reponse" value="<?php echo $part; ?>">
<input type="hidden" name="tpsInit" value="<?php echo $tpsInit; ?>">
<input type="hidden" name="estaccepte" value="TRUE">
<input type="submit" value="next experiment">
</td></tr>
<tr><td>
<input type="hidden" name="reponse" value="<?php echo $part ?>">
<input type="hidden" name="tpsInit" value="<?php echo $tpsInit; ?>">
<input type="hidden" name="estaccepte" value="FALSE">
<input type="submit" value="withdrawn">
</form>
</td></tr>
</table>
...
puis dans page intermed.php
<?php
if ($_POST['estAccepte']=='TRUE') {
header("location:vignette2.php?tpsInit=$_POST['tpsinit']&reponse=....'")
}
else {
header("location:refusVign3.php?tpsInit=$_POST['tpsinit']&reponse=....'")
}
Evidemment, je n'ai pas testé avant de poster ce message.
Mais, je pense que ça doit marcher.
Bon courage !
Bonjour
Le plus simple à mon avis c'est d'avoir un seul form avec deux boutons submit. Tu donnes des noms différents aux deux boutons.
Au début de vignette2.php, tu testes lequel des deux boutons a été cliqué. Si c'est le bouton de refus, tu renvoies vers la page RefsVign3.php.
En résumé, dans ton formulaire (à remettre un peu en forme) :
et vers le début de "vignette2.php" (avant d'avoir commencé à sortir la page HTML):
Le plus simple à mon avis c'est d'avoir un seul form avec deux boutons submit. Tu donnes des noms différents aux deux boutons.
Au début de vignette2.php, tu testes lequel des deux boutons a été cliqué. Si c'est le bouton de refus, tu renvoies vers la page RefsVign3.php.
En résumé, dans ton formulaire (à remettre un peu en forme) :
<form name="questionnaire" action="vignette2.php" method="post"> ... ici se trouvent les inputs auxquels répondent les personnes ... </table> <table align="center"> <tr><td> <input type="hidden" name="reponse" value="<?php echo $part; ?>"> <input type="hidden" name="tpsInit" value="<?php echo $tpsInit; ?>"> <input type="submit" value="next experiment" name="accepte"> <input type="submit" value="withdrawn" name = "refus"> </form>
et vers le début de "vignette2.php" (avant d'avoir commencé à sortir la page HTML):
... if (isset($_POST['refus'])) header('Location: RefusVign3.php');
Merci pour vos réponses! Je vais tester les deux solutions. Je vous dirais demain ce qui marche/ne marche pas. :o)
Salut!
J'ai essayé les 2 méthodes, les deux fonctionnent partiellement.
J'arrive bien à être renvoyé vers la page "refus" et les variables php sont enregistrées avec la première méthode.
Mais dans les 2 cas, les données HTML ne sont pas renvoyées vers la page refus, et donc ne sont pas enregistrées.
J'ai laissé tomber l'idée d'enregistrer les données même quand les gens refusent de continuer, je n'ai pas le temps de chercher davantage comment faire marcher tout ça.
Tant pis! En tous cas, merci pour votre aide.
Clémentine
J'ai essayé les 2 méthodes, les deux fonctionnent partiellement.
J'arrive bien à être renvoyé vers la page "refus" et les variables php sont enregistrées avec la première méthode.
Mais dans les 2 cas, les données HTML ne sont pas renvoyées vers la page refus, et donc ne sont pas enregistrées.
J'ai laissé tomber l'idée d'enregistrer les données même quand les gens refusent de continuer, je n'ai pas le temps de chercher davantage comment faire marcher tout ça.
Tant pis! En tous cas, merci pour votre aide.
Clémentine
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour, Clémentine avez-vous pensé à ce que le contenu de votre page soit généré dynamiquement en fonction du bouton soumis
Sinon pour que les données soient renvoyées vers la page "refus" vous pouvez les passer manuellement en GET en rajoutant "refus.php?donnee=valeur&donnee=valeur&donnee=valeur" etc. Je vous conseillerais de les URL encoder : passez la chaîne d'arguments à rawurlencode() et dans "refus.php" passez les arguments à rawurldecode() et si besoin de les échapper : passez à "refus" en addslashes() et récupérez les arguments avec stripslashes().
Sinon vos réponses présentent l'inconvénient de ne pas fonctionner avec un type image car là le nom n'est pas passé donc impossible de déterminer avec if(isset()).
<?php if(isset($_POST["nom_bouton"])) {générer la page} ?>et que de ce fait vous n'ayez pas à rediriger vers 2 pages différentes ?
Sinon pour que les données soient renvoyées vers la page "refus" vous pouvez les passer manuellement en GET en rajoutant "refus.php?donnee=valeur&donnee=valeur&donnee=valeur" etc. Je vous conseillerais de les URL encoder : passez la chaîne d'arguments à rawurlencode() et dans "refus.php" passez les arguments à rawurldecode() et si besoin de les échapper : passez à "refus" en addslashes() et récupérez les arguments avec stripslashes().
Sinon vos réponses présentent l'inconvénient de ne pas fonctionner avec un type image car là le nom n'est pas passé donc impossible de déterminer avec if(isset()).