Passer une variable javascript à php via form
proseme
Messages postés
4
Statut
Membre
-
proseme Messages postés 4 Statut Membre -
proseme Messages postés 4 Statut Membre -
Bonjour,
Je sèche depuis trois jours (à temps plein!) et je ne trouve pas pourquoi le script ci-dessous ne fonctionne pas.
J'ai essayé toutes les solutions proposées dans d'autres sujets et aucune ne marche. Je dois louper quelque chose et j'ai besoin d'aide.
Voici mon problème :
La page demande.php comporte une (longue) liste de mots. Le mot cliqué détermine la valeur de $a. Je veux passer cette valeur à la page resultat.php qui va faire un calcul sur $a (j'ai retiré le calcul et je l'ai remplacé par une simple instruction echo).
En fait resultat.php est bien activé mais ne semble pas avoir reçu la variable. Il imprime :
« Hello world ! Le mot demandé est » suivi d'un blanc
Quelqu'un peut-il m'indiquer pourquoi la variable « n'est pas passée » ?
J'espère que je ne dois pas recourir forcément à des solutions plus complexes genre Ajax.
demande.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
<html>
<head> </head>
<body>
<a href=" " onClick="var $a='grenouille'; traitement($a);return true;"> grenouille </a> <br />
<a href=" " onClick="var $a='perroquet'; traitement($a);return true;"> perroquet </a> <br />
<a href=" " onClick="var $a='serpent'; traitement($a);return true;"> serpent </a> <br />
<a href=" " onClick="var $a='tigre'; traitement($a);return true;"> tigre </a> <br />
<script type="text/javascript">
function traitement($a)
{
document.getElementById("entree").value = $a;
alert(document.getElementById('entree').value);
return true;
}
</script>
<form action="resultat.php" method="post">
<input id="entree" name="entree" type="hidden" value="">
<input type="submit">
</form>
</body>
</html>
resultat.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<html>
<head></head>
<body >
<?php
echo "Hello world !";
echo " Le mot demandé est ", $_POST['entree'];
?>
</body>
</html>
Je sèche depuis trois jours (à temps plein!) et je ne trouve pas pourquoi le script ci-dessous ne fonctionne pas.
J'ai essayé toutes les solutions proposées dans d'autres sujets et aucune ne marche. Je dois louper quelque chose et j'ai besoin d'aide.
Voici mon problème :
La page demande.php comporte une (longue) liste de mots. Le mot cliqué détermine la valeur de $a. Je veux passer cette valeur à la page resultat.php qui va faire un calcul sur $a (j'ai retiré le calcul et je l'ai remplacé par une simple instruction echo).
En fait resultat.php est bien activé mais ne semble pas avoir reçu la variable. Il imprime :
« Hello world ! Le mot demandé est » suivi d'un blanc
Quelqu'un peut-il m'indiquer pourquoi la variable « n'est pas passée » ?
J'espère que je ne dois pas recourir forcément à des solutions plus complexes genre Ajax.
demande.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
<html>
<head> </head>
<body>
<a href=" " onClick="var $a='grenouille'; traitement($a);return true;"> grenouille </a> <br />
<a href=" " onClick="var $a='perroquet'; traitement($a);return true;"> perroquet </a> <br />
<a href=" " onClick="var $a='serpent'; traitement($a);return true;"> serpent </a> <br />
<a href=" " onClick="var $a='tigre'; traitement($a);return true;"> tigre </a> <br />
<script type="text/javascript">
function traitement($a)
{
document.getElementById("entree").value = $a;
alert(document.getElementById('entree').value);
return true;
}
</script>
<form action="resultat.php" method="post">
<input id="entree" name="entree" type="hidden" value="">
<input type="submit">
</form>
</body>
</html>
resultat.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<html>
<head></head>
<body >
<?php
echo "Hello world !";
echo " Le mot demandé est ", $_POST['entree'];
?>
</body>
</html>
A voir également:
- Passer une variable javascript à php via form
- Passer de qwerty a azerty - Guide
- Passer a windows 10 - Accueil - Mise à jour
- Passer de majuscule à minuscule - Guide
- Passer à windows 11 gratuitement - Guide
- Expert php pinterest - Télécharger - Langages
6 réponses
Rostov, j'ai cherché form.submit sur le web et je comprends mieux ton message.
Ce matin j'ai testé en local un script avec ta solution, cad un document.myform.submit(). Et là: petit MIRACLE: ça marche, et ça marche sur tous mes navigateurs (IE, Safari, Chrome, Firefox et Opera) !!
Ne nous emballons pas: il faut d'abord vérifier que ça continue à marcher une fois intégré dans le programme réel et envoyé sur le Net.
Mais d'ores et déjà UN GRAND MERCI Rostov !!
Ce matin j'ai testé en local un script avec ta solution, cad un document.myform.submit(). Et là: petit MIRACLE: ça marche, et ça marche sur tous mes navigateurs (IE, Safari, Chrome, Firefox et Opera) !!
Ne nous emballons pas: il faut d'abord vérifier que ça continue à marcher une fois intégré dans le programme réel et envoyé sur le Net.
Mais d'ores et déjà UN GRAND MERCI Rostov !!
Confirmation: ça marche aussi une fois sur le Net! Et ça marche avec tous les navigateurs mentionnés plus haut ainsi que sur tablettes Galaxy (androïd) et iPad. Votre aide a été précieuse! Merci.
Voici le code pour ceux qui rencontreraient le même problème:
= = = = = = = = = = = = = = = = = =
<a href="javascript:document.getElementById('entree').value='grenouille'; submitform();"> grenouille </a> <br />
<a href="javascript:document.getElementById('entree').value='perroquet'; submitform();"> perroquet </a> <br />
<a href="javascript:document.getElementById('entree')'value='serpent'; submitform();"> serpent </a> <br />
<a href="javascript:document.getElementById('entree').value='tigre'; submitform();"> tigre </a> <br />
<!-- Le code pour envoyer le resultat correspondant au lien cliqué -->
<form name="myform" action="resultat10get.php" method="get">
<input id="entree" name="entree" type="hidden">
</form>
<script type="text/javascript">
function submitform()
{ document.myform.submit(); }
</script>
= = = = = = = = = = = = = = = = = =
Voici le code pour ceux qui rencontreraient le même problème:
= = = = = = = = = = = = = = = = = =
<a href="javascript:document.getElementById('entree').value='grenouille'; submitform();"> grenouille </a> <br />
<a href="javascript:document.getElementById('entree').value='perroquet'; submitform();"> perroquet </a> <br />
<a href="javascript:document.getElementById('entree')'value='serpent'; submitform();"> serpent </a> <br />
<a href="javascript:document.getElementById('entree').value='tigre'; submitform();"> tigre </a> <br />
<!-- Le code pour envoyer le resultat correspondant au lien cliqué -->
<form name="myform" action="resultat10get.php" method="get">
<input id="entree" name="entree" type="hidden">
</form>
<script type="text/javascript">
function submitform()
{ document.myform.submit(); }
</script>
= = = = = = = = = = = = = = = = = =
Bonsoir,
Si tu veux passer une variable d'une page à un script PHP situé dans une autre page, il faut utiliser la méthode GET et faire passer cette variable dans le lien :
fichier resultat.php :
Tu ne pourras pas passer une variable javascript à un script PHP sur un onclick.
Si tu veux passer une variable d'une page à un script PHP situé dans une autre page, il faut utiliser la méthode GET et faire passer cette variable dans le lien :
<a href="resultat.php?element=grenouille"> grenouille </a><br /> <a href="resultat.php?element=perroquet"> perroquet </a><br /> <a href="resultat.php?element=serpent"> serpent </a><br /> <a href="resultat.php?element=tigre"> tigre </a><br />
fichier resultat.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd> <html> <head></head> <body><?php echo "Hello world !"; echo " Le mot demandé est ", $_GET['element']; ?></body> </html>
Tu ne pourras pas passer une variable javascript à un script PHP sur un onclick.
ou alors au lieu de .value = $a tu utilise .href = $a (ça devrais marcher mais je n'en suis pas sur a 100%, j'ai la flemme d'essayer. cependant ça modifie le html directement)
et pour passer des valeurs en get c'est window.location.href("resultats.php?variable="+$a);
dites non aux lois liberticide (hadopi, sopa,pipa,arjel,acta,ipred) et à la censure numérique !!!
et pour passer des valeurs en get c'est window.location.href("resultats.php?variable="+$a);
dites non aux lois liberticide (hadopi, sopa,pipa,arjel,acta,ipred) et à la censure numérique !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
avec ta methode modifiée ci dessous tu dois cliquer 2 fois (une sur le lien et 1 sur le bouton submit du formiulaire:
alors qu'avec la methode proposée par RedLog tu passes en GET par le lien en 1 seul click
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
<html>
<head> </head>
<body>
<a href="javascript:traitement('grenouille');"> grenouille </a> <br />
<a href="javascript:traitement('perroquet');"> perroquet </a> <br />
<a href="javascript:traitement('serpent');"> serpent </a> <br />
<a href="javascript:traitement('tigre');"> tigre </a> <br />
<script type="text/javascript">
function traitement($a)
{
document.getElementById("entree").value = $a;
alert(document.getElementById('entree').value);
return true;
}
</script>
<form action="resultat.php" method="post">
<input id="entree" name="entree" type="hidden" value="">
<input type="submit">
</form>
</body>
</html>
resultat.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<html>
<head></head>
<body >
<?php
echo "Hello world !";
echo " Le mot demandé est ", $_POST['entree'];
?>
</body>
</html>
alors qu'avec la methode proposée par RedLog tu passes en GET par le lien en 1 seul click
Alain_42, RedLog et vordano, merci pour vos réponses.
Merci pour vos réponses qui, l'une avec GET, l'autre avec POST, placent du javascript directement dans href et non pas dans un attribut-évènement comme onclick ou autre? Ca marche avec certains navigateurs (comme Chrome).
J'ai lu que placer du javascript directement dans href était une "méthode obsolete", qu'en pensez-vous? Est-ce que ça pourrait être la raison pourquoi le programme ne s'exécute pas avec d'autres navigateurs (comme Firefox)
Encore merci pour votre aide,
Merci pour vos réponses qui, l'une avec GET, l'autre avec POST, placent du javascript directement dans href et non pas dans un attribut-évènement comme onclick ou autre? Ca marche avec certains navigateurs (comme Chrome).
J'ai lu que placer du javascript directement dans href était une "méthode obsolete", qu'en pensez-vous? Est-ce que ça pourrait être la raison pourquoi le programme ne s'exécute pas avec d'autres navigateurs (comme Firefox)
Encore merci pour votre aide,