Formulaire qui ne recharge pas la page


Vincent1975
WRInaute impliqué
WRInaute impliqué
 
Messages: 516
Inscription: 19 Oct 2006

Formulaire qui ne recharge pas la page

Message le Jeu Nov 30, 2006 15:29

Bonjour,
J'ai un petit problème technique, et je ne trouve pas la solution sur le net.
C'est à la page -http://www.linguistics4u.eu/coursfle.htm. J'ai mis un petit formulaire de contact rapide en bas de page, genre commentaires. Il passe en traitement par un formulaire envoi.php, que j'ai eu du mal à faire, vu que le php c'est pas mon truc. Maintenant le problème c'est que, si je veux mettre ce formulaire sur plusieurs pages, il va me falloir autant de formulaires de traitement, si je veux que le visiteur soit redirigé sur la même page après l'envoi du formulaire. Existe-t'il un moyen d'envoyer le formulaire mais sans que le visiteur soit dirigé vers ma page de traitement? Que le formulaire parte en gros sans provoquer de rechargement de ma page, pour que le visiteur reste où il est. D'autant que mon bouton dit "Merci" quand on clique dessus, donc pas la peine de faire un truc montrant que le formulaire est parti.
Merci, V.


Vincent1975
WRInaute impliqué
WRInaute impliqué
 
Messages: 516
Inscription: 19 Oct 2006

Message le Jeu Nov 30, 2006 15:39

J'ai oublié de dire que vous pouvez m'enyer des tests avec des mails bidons pour voir, j'effacerai. :) Merci


narayana
WRInaute impliqué
WRInaute impliqué
 
Messages: 835
Inscription: 28 Jan 2005

Message le Jeu Nov 30, 2006 16:11

a première vue
si tu mets un champ hidden dans ton formulaire
par exemple ceci
Code: Tout sélectionner
<input type="hidden" name="referer" value="<?=$_SERVER['HTTP_REFERER'];?>"/>

Lorsque tu soumets le formulaire, tu fais ton traitement dans envoi.php puis tu récupères le référer et tu rediriges directement sur la page référer.

Cela peut à priori fonctionner


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Jeu Nov 30, 2006 16:14

Salut,

Ce que tu peux faire:

- créer une iframe invisible dans laquelle s'exécute ton script PHP, comme ça tu ne quitte pas la page.
- ou à la fin de ton script tu mets la ligne:
header("location:".$_SERVER['HTTP_REFERER']); qui renverra à la page qui a appelé le script.


Vincent1975
WRInaute impliqué
WRInaute impliqué
 
Messages: 516
Inscription: 19 Oct 2006

Message le Jeu Nov 30, 2006 16:14

Merci, mais comment je fais dans envoi.php pour renvoyer sur referer (je suis novice en php :oops: )


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Jeu Nov 30, 2006 16:16

narayana a écrit:a première vue
si tu mets un champ hidden dans ton formulaire
par exemple ceci
Code: Tout sélectionner
<input type="hidden" name="referer" value="<?=$_SERVER['HTTP_REFERER'];?>"/>

Lorsque tu soumets le formulaire, tu fais ton traitement dans envoi.php puis tu récupères le référer et tu rediriges directement sur la page référer.

Cela peut à priori fonctionner


là tu auras le referer de la page avant le formulaire...


narayana
WRInaute impliqué
WRInaute impliqué
 
Messages: 835
Inscription: 28 Jan 2005

Message le Jeu Nov 30, 2006 16:17

si tu passes par un post
Code: Tout sélectionner
$referer = $_POST['referer'];
//ici ton traitement
...
//puis redirection
header("Location:".$referer);
exit();


si tu passes par un get
Code: Tout sélectionner
$referer = $_GET['referer'];
//ici ton traitement
...
//puis redirection
header("Location:".$referer);
exit();


Vincent1975
WRInaute impliqué
WRInaute impliqué
 
Messages: 516
Inscription: 19 Oct 2006

Message le Jeu Nov 30, 2006 16:18

Désolé Biscuit, mais j'ai du mal à suivre. Pour l'instant j'ai mis la ligne Hidden dans mon formulaire, dans envoi. php j'ai juste ça pour la redirection:
<meta http-equiv="Refresh" content="5;URL=http://www.linguistics4u.eu/coursfle.htm">
Comment je peux faire pour prendre le referrer là dedans? Merci :)


narayana
WRInaute impliqué
WRInaute impliqué
 
Messages: 835
Inscription: 28 Jan 2005

Message le Jeu Nov 30, 2006 16:19

biscuit a écrit:là tu auras le referer de la page avant le formulaire...


Exact autant pour moi
alors il faut utiliser le parametre REQUEST_URI

quelques variables qui pourront t'aider
http://fr3.php.net/reserved.variables


Vincent1975
WRInaute impliqué
WRInaute impliqué
 
Messages: 516
Inscription: 19 Oct 2006

Message le Jeu Nov 30, 2006 16:20

Ouille ouille :( je suis perdu là


hebmaster
WRInaute passionné
WRInaute passionné
 
Messages: 1133
Inscription: 22 Déc 2005

Message le Jeu Nov 30, 2006 16:25

tu peux utiliser ajax ...


Vincent1975
WRInaute impliqué
WRInaute impliqué
 
Messages: 516
Inscription: 19 Oct 2006

Message le Jeu Nov 30, 2006 16:26

pas le temps de faire une lessive :lol:


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Jeu Nov 30, 2006 16:28

P'tite récapitulation, alors...

sur les pages de ton site tu as un formulaire qui envoi vers envoi.php, dans envoi.php tu as:

Code: Tout sélectionner
<?php

// Récupération des variables
$var = $_POST['var']
...

// envoi du mail
mail(...)

// retour à la page précèdente
header("location:" . $_SERVER['HTTP_REFERER']);
?>


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Jeu Nov 30, 2006 16:29

Vincent1975 a écrit:pas le temps de faire une lessive :lol:


Image
Dernière édition par biscuit le Jeu Nov 30, 2006 16:29, édité 1 fois.


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Message le Jeu Nov 30, 2006 16:29

autre méthode tu post sur ta page courante quoi qu'il arrive avec un
Code: Tout sélectionner
action=""

dans toute tes pages ou tu as ton formulaire tu colle un include
avec un bout de code comme celui ci dedans
Code: Tout sélectionner
if( isset( $_POST) && isset($_POST['nom_du_champs']) ) ) {
// ce que tu veux faire
}


et ca roule... :)
Dernière édition par julienr le Jeu Nov 30, 2006 16:39, édité 1 fois.

Formulaire qui ne recharge pas la page

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité