Utiliser une variable JS dans du code php

[Résolu/Fermé]
Signaler
Messages postés
12
Date d'inscription
dimanche 22 mai 2016
Statut
Membre
Dernière intervention
31 juillet 2016
-
Messages postés
12
Date d'inscription
dimanche 22 mai 2016
Statut
Membre
Dernière intervention
31 juillet 2016
-
voila dans la page produit (php) cette page a déjà un identificateur en paramètre a la base (elle affiche le produit selon son identificateur) j'ai le code suivant:

<label>Willaya</label>
<select class="form-control mb-md" name="willaya" id="willay" required>
<option value="">Choisir</option>
<?=$willaya?>
</select>


c'est une liste de wilaya (régions)

le client choisie une région et moi ce que je veut c'est récupérer cette valeur en php pour faire un traitement , pas l'afficher mais la traiter (elle me servira a calculer les frais de livraison ) donc j'ai utiliser du JS pour cela avec un évent voila le code :


<script>
var willay = document.getElementById('willay');
var selectedValue = null;
willay.addEventListener("change", function() {
selectedValue = this.value;
//document.write(selectedValue); (quand j'utilise document.write sa marche donc la valeur je la récupérer parfaitement bien mais cette fonction m'envois sur un autre document et ce n'est pas le but)
ou meme dans un consol.log()

});
</script>


la pas de problème. maintenant pour convertir cette valeur dans une variable php exemple j'aimerais avoir cela (variable php = variable JS) et pouvoir faire mes calcule c'est la que je bloc bien sur je veut pas recharger ma page pour avoir cette valeur mais je veut qu'a l'instant même ou le client choisie sa région le traitement ce fait et affiche les frais de livraison

je veut juste récupérer une variable JS dans une variable php et faire un calcule

Merci

2 réponses

Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
Dans ce cas tu dois utiliser Ajax (Asynchronous JavaScript and XML)
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
12
Date d'inscription
dimanche 22 mai 2016
Statut
Membre
Dernière intervention
31 juillet 2016

un exemple si possible je ne suis vraiment pas bon enfin débutant je viens juste de commencer a lire un tutoriel sur ajax je suis juste a l'initialisation si tu me donne un exemple d’utilisation dans mon cas ce serais sympa
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
voici un exemple simple :
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "page_php.php?variable="+selectedValue, true);
xhttp.send();

Dans page_php.php recuperer la variable selectedValue :
$selectedValue = $_GET['variable'];
Messages postés
12
Date d'inscription
dimanche 22 mai 2016
Statut
Membre
Dernière intervention
31 juillet 2016
>
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016

merci je vais de ce fait voir si cela peut faire l'affaire
Messages postés
12
Date d'inscription
dimanche 22 mai 2016
Statut
Membre
Dernière intervention
31 juillet 2016

voila j''ai utiliser ce code pour tester (une page test ) et cela ne marche pas alors que ca devrais vous pouvais m'éclairais je commence à perdre patience merci :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>index.php</title>
</head>
<body>
<form>
<select name="percent" id="choix">
<option value="1000">1000</option>
<option value="2000">2000</option>
</select>
</form>
<?php
if (isset( $_GET['v']))
{$variable=$_GET['v']; }
?>
<p>votre choix est : <?php echo $variable; ?> </p>
<script type="text/javascript">
var option = document.getElementById('choix');
var selectedValue = null;
option.addEventListener("change", function() {
selectedValue = this.value; // si je fait alert pour afficher ma variable sa marche jusqu'a la
// le code qui normalement devrais envoyer la variable
var xhr = new XMLHttpRequest();
xhr.open('GET', 'index.php?v='+ encodeURIComponent(selectedValue));
xhr.send(null);
});
</script>
</body>
</html>


j'ai aussi réessayer avec un autre code et de même pas de résultat alors que l'on peut difficilement faire plus simple comme exemple voici l'autre code :


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>indextest.php</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

</head>
<body>
<form>
<select name="percent" id="choix">
<option value="1000">1000</option>
<option value="2000">2000</option>
</select>
</form>
<?php
if (isset( $_POST['v']))
{$variable=$_POST['v']; }
?>
<p>votre choix est : <?php echo $variable; ?> </p>
<script type="text/javascript">
var option = document.getElementById('choix');
var selectedValue = null;
option.addEventListener("change", function() {
selectedValue = this.value; // si je fait alert pour afficher ma variable sa marche jusqu'a la
// le code qui normalement devrais envoyer la variable
/*var xhr = new XMLHttpRequest();
xhr.open('GET', 'indextest.php?v='+ encodeURIComponent(selectedValue));
xhr.send(null);*/
$.ajax({
type: "POST",
url: "indextest.php",
data: {v: selectedValue}
});

});
</script>
</body>
</html>
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
essaye ce code :


<?php
if (isset( $_GET['v']))
{$variable=$_GET['v']; die($variable);}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>index.php</title>
</head>
<body>
<form>
<select name="percent" id="choix">
<option value="1000">1000</option>
<option value="2000">2000</option>
</select>
</form>

<p>votre choix est : <span id="mon_choix"></span></p>
<script type="text/javascript">
var option = document.getElementById('choix');
var selectedValue = null;
option.addEventListener("change", function() {
selectedValue = this.value; // si je fait alert pour afficher ma variable sa marche jusqu'a la
// le code qui normalement devrais envoyer la variable
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("mon_choix").innerHTML = xhr.responseText;
}
};
xhr.open('GET', 'index.php?v='+ encodeURIComponent(selectedValue));
xhr.send(null);
});
</script>
</body>
</html>

Messages postés
12
Date d'inscription
dimanche 22 mai 2016
Statut
Membre
Dernière intervention
31 juillet 2016
>
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016

merci beaucoup j'ai réussi a le faire marcher j'avais oublier de traiter le retour :p bonne journée et encore merci