Passer variable javascript en php

Fermé
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 3 sept. 2011 à 16:15
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 3 sept. 2011 à 19:27
Bonjour,

Voici ce que j'ai produit :

<SCRIPT language="Javascript">var relance = prompt("De combien voulez-vous relancer ?");</SCRIPT>
.
.
.
autre code php
.
.
.
?><SCRIPT language="Javascript">var relance =</SCRIPT><?php$relance;?>
<?php
$capital2=$capital-$relance;

Or il s'avère que $capital2 a la même valeur que $capital
Je pense que comme $relance n'est pas dans le même bloc php, il est égale a 0.
Comment puis-je faire? Sachant que si je ne fais pas <?php$relance;?>, il y a une erreur

merci


A voir également:

4 réponses

supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
3 sept. 2011 à 16:28
d'où vient ta variable $relance en php ?

tes 2 morceaux de code Javascript sont-ils exécutés dans la même page ?
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
3 sept. 2011 à 16:38
$relance est créée dans la page au niveau de ?><SCRIPT language="Javascript">var relance =</SCRIPT><?php$relance;?>

et oui le code que j'ai montré est sur la même page
0
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
3 sept. 2011 à 16:51
je vois bien la création de la variable "relance" en Javascript (2 fois même, ce qui peut poser problème) mais je ne vois pas la création de la variable "$variable" qui, elle, est une variable php
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
3 sept. 2011 à 17:05
Ok j'ai supprimé la deuxième création de relance merci.

j'ai renommé $relance en $relancer, est-ce ça le problème?
<SCRIPT language="Javascript">relance =</SCRIPT><?php$relancer;?>

sinon je ne vois pas où il est car $relancer est créée dans le passage de valeur entre var relance et $relancer
0
Si tu veux passer une valeur de variable PHP à javascript, il faudrait normalement faire ceci :
<?php
$relance = 10;
?>
<script type="text/javascript">var relance=<?php echo $relance; ?>;</script>

Sachant que pour javascript 10 n'est pas une valeur mais une string et que si tu veux réaliser une opération mathématique avec ce nombre il te faudra utiliser parseInt() http://www.toutjavascript.com/reference/reference.php?ref=parseInt&parent=210
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 501
3 sept. 2011 à 17:42
Salut,

@__construct : ce que tu dis à propos des types n'est pas tout à fait exact.
De ton exemple, voici le code qui sera envoyé au navigateur, donc une fois le PHP exécuté :
<script type="text/javascript">var relance=10;</script>
La variable JS « relance » sera donc un entier (integer), parseInt() n'est pas utile, on peut effectuer des opérations mathématiques.

Pour ce qui est de l'échange de variable entre JS et PHP, ce n'est possible que dans le sens « PHP -> JS » (comme __construct l'a montré) mais pas dans l'autre. Et l'explication est très simple : le PHP est exécuté par le serveur avant d'envoyer la page au client (navigateur). Lorsque le Javascript est exécuté (par le navigateur), le PHP n'est plus présent dans le code source plus.

Je t'invite à regarder du côté d'AJAX (XmlHttpRequest), peut-être que c'est la solution à ton problème.
0
Effectivement tu as raison, je me rappelle avoir eu ce problème d'une valeur entrée dans un formulaire et qui devait être manipulée dans une opération mathématique et j'avais eu ce problème!
Dans le cas présent, effectivement c'est bien un integer pour javascript!
Mille excuses pour ma fausse information... et un grand merci à avion-f16 pour avoir relevé mon erreur!
@+
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
3 sept. 2011 à 17:51
D'accord mais l'opération ne se fait pas en javascript mais en php, parseInt() ne m'es pas utile si je ne me trompe pas.

Je n'es peut-être pas été assez clair dans mes explications, en faite, je fais un site de poker, lorsque l'utilisateur clique sur le bouton relancer, une fenêtre en javascript apparaît et lui demande de combien il souhaite relancer. D'où le prompt(). Je récupère la valeur retourné par cette fonction et je soustrais la valeur du capital de départ par la valeur de la relance et j'affiche cette nouvelle valeur.

J'espère être suffisamment clair, si ce n'est pas le cas dites-le moi merci
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 501
3 sept. 2011 à 18:05
AJAX est sûrement la solution. Mais soit prudent, n'oublie pas que le Javascript peut être modifié. On peut même en exécuté via la console du navigateur, donc modifier les variables.

prompt() te retournera bien une chaine, même si tu indiques « 10 ».
Mais la convertir en entier avec parseInt ne servira à rien si tu utilises AJAX : le nombre sera passé en argument GET ou POST et redeviendra une chaine en PHP.

http://www.siteduzero.com/tutoriel-3-4745-ajax-et-l-echange-de-donnees-en-javascript.html
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 3/09/2011 à 18:37
Si je fais ça en créant une fonction en JavaScript est-ce que cela est faisable?

en gros, lorsque l'utilisateur clique sur le bouton relancer, on appelle une fonction JS, qui prend la valeur de la relance via le prompt, la soustrait au capital de départ, et retourne la valeur du nouveau capital.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 501
3 sept. 2011 à 18:45
Oui, mais on peut facilement modifier le JS, donc modifier le capital.

Sous chrome, si tu ouvres l'outil de développement (F12), tu peux insérer du JS via l'onglet « Console ».
Pareil sous Firefox avec Maj+Ctrl+K
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
3 sept. 2011 à 19:27
Ok mais je me fais un site juste pour moi et mes proches, et non pour le grand public donc sa ira je pense
0