Mettre variable javaScript dans variable PHP? [Résolu/Fermé]

Signaler
Messages postés
63
Date d'inscription
mardi 3 janvier 2012
Statut
Membre
Dernière intervention
1 octobre 2016
-
Messages postés
63
Date d'inscription
mardi 3 janvier 2012
Statut
Membre
Dernière intervention
1 octobre 2016
-
Bonjour,

La question semble être courante, mais les réponses que je trouve sur le sujet ne semblent pas correspondre à ce que je cherche (ou sont fausses !). Je précise que je suis débutant en javaScript...

En simplifiant, ce que je voudrais faire, c'est juste récupérer une variable javaScript dans une variable PHP via un formulaire. Voici schématiquement à quoi ça devrait ressembler au niveau du code (à mon avis) :
<script>
	var ma_var_js = 'valeur_test';
</script>
		
<form method="post" action="#">
	<input type="hidden" id="ma_var" value=" ?methode?(ma_var_js)" />
	<input type="submit" value="Récupérer ma variable" />
</form>
		
<?php
	if(isset($_POST['ma_var'])){
		echo('<br><br>Afficher la valeur de ma variable : <br>');
		echo($_POST['ma_var']);
	}
?>


Alors soit comment ça via une méthode PHP, soit inversement, une fonction javaScript qui permettrait directement d'envoyer une variable sur une page avec la méthode POST (ce qui est d'ailleurs plus probable en fin de compte plutôt que le code ci-dessus). L'objet XMLHttpRequest semble pouvoir faire ça, mais comment ??? C'est là ma seule piste, mais les exemples me perdent !

Bref, si vous avez des éclaircissements à me donner ou d'autres pistes accessibles, n'hésiter pas !
Merci :)

2 réponses

Messages postés
2027
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
Cherches du coté de "Ajax" : https://gael-donat.developpez.com/web/intro-ajax/ (par exemple)
Messages postés
63
Date d'inscription
mardi 3 janvier 2012
Statut
Membre
Dernière intervention
1 octobre 2016
3
Oui, Ajax est bien la solution mais je n'arrivais pas comprendre comment dans mon cas... Merci quand même pour ton aide Zep3k!GnO.

Néanmoins depuis, j'ai réussi à programmer un petit code qui semble me donner les résultats que je veux. Le voici en simplifier (je me suis inspiré d'un tuto sur le site du zéro : http://www.siteduzero.com/tutoriel-3-557807-xmlhttprequest.html):

page_1.php :
<input type="submit" id="envoie" value="ENVOYER DONNEES" />

<p id="fileContent">
	<span>Aucune données envoyées</span>
</p>
		
<script>
	function send_data() {
		var xhr = new XMLHttpRequest();

                //Une variable javaScript :
		var value = encodeURIComponent('Hello World');
		xhr.open('GET', 'page_2.php?valeur=' + value);
				
		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && xhr.status == 200) {	
				document.getElementById('fileContent').innerHTML = xhr.responseText;
					
			} else if (xhr.readyState == 4 && xhr.status != 200) {
				alert('Une erreur est survenue !\n\nCode :' + xhr.status + '\nTexte : ' + xhr.statusText);
			}
		}
		xhr.send(null);
	}			
	
        // Pour déclencher la fonction au clic sur le bouton d'envoi :		
	(function() {
		var obj = document.getElementById("envoie");
		obj.onclick = function() {
			send_data();
		};
	})();
			
</script>


page_2.php :
<?php 
	if(isset($_GET['valeur'])){
		echo($_GET['valeur']);
	}else{
		echo('problème rencontré<br>');
		exit;
	}
?>		



Je vais voir si je peux vraiment faire ce que je veux comme ça.