Code : Tout sélectionner
save: function() {
const cartJSON = JSON.stringify(this);
$.ajax({
type: "POST",
url: "./ajax-save-cart.php",
data: { cart: cartJSON },
cache: false,
}).done(function(ma_variable_nommee_differemment){
// Tous s'affiche
console.log("ici les données de ajax-save-cart.php : " + ma_variable_nommee_differemment);
});
displayCart();
},
Code : Tout sélectionner
ici les données de ajax-save-cart.php : <pre>{"etatdupanier":"Le panier a \u00e9t\u00e9 enregistr\u00e9 avec succ\u00e8s.","products":{"products":[{"id":2,"title":"Compatibilit\u00e9","price":49}],"total":49}}</pre>
if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["cart"]) && !empty($_POST["cart"])) {
$cartData = $_POST["cart"];
$etatdupanier = "Le panier a été enregistré avec succès.";
$response = array(
"etatdupanier" => $etatdupanier,
"products" => json_decode($cartData, true),
);
dd(json_encode($response), 'ici mon response json');
} else {
// Cette variable est figer elle n'est jamais mise à jour en fonction de la console qui quant à elle affiche le bon contenu.
$etatdupanier = "Le panier est vide";
}
let donnes_recues = JSON.parse(ma_variable_nommee_differemment);
console.log(donnes_recues.etatdupanier);Or1 désolé ... Mais répondre à une question par une autre question ... Sa fait pas avancer surtout vu le temps qu'on y est j'appel à la pertinence dans tes reponsequ'est-ce qui est fait dans ajax-save-cart.php ? pour savoir si quelque chose est sauvé en php, ce qui permet ensuite d'accéder en php à ce qui a été sauvé pour le réafficher.
Ok mais je met ou ce code ?Si tu envoie en JSON, te faut décodr le JSON côté JS :
let donnes_recues = JSON.parse(ma_variable_nommee_differemment); console.log(donnes_recues.etatdupanier);
Je souhaite ici envoyer mon panier JS en PHP Je crois que vous n'avez pas compris le pbC'est pas possible de faire passer une variable PHP à JS, voir ma dernière solution avec "variable_nommee_differemment".
JS est côté client, PHP est côté serveur. Les deux langages sont différents, on peut communiquer du PHP à JS mais pas comme tu tente de le faire avec function($etatdupanier).
1. Envoyer le panier via AJAXJe souhaite ici envoyer mon panier JS en PHP Je crois que vous n'avez pas compris le pb
//les données à envoyer :
const cartJSON = JSON.stringify(this); // à récupérer en PHP via $_POST['cart'], car "cart: cartJSON"
$.ajax({
type: "POST",
url: "ajax-save-cart.php",
data: { cart: cartJSON },
}).done(function(response) {
console.log(response); // Affichera $_POST['cart']
});
2. Récupérer ce qui est envoyé via AJAX, en PHP
//ajax-save-cart.php
echo $_POST['cart'];Code : Tout sélectionner
<pre>{"products":[{"id":3,"title":"Prévisions","price":29},{"id":3,"title":"Prévisions","price":29},{"id":3,"title":"Prévisions","price":29}],"total":87}ici le $_POST["cart"]</pre><!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
...
Code : Tout sélectionner
Notice: Undefined index: cart in /Applications/MAMP/htdocs/Numerova/index.php on line 15
ici le $_POST["cart"]
$.ajax({
type: "POST",
url: "ajax-save-cart.php",
data: { cart: "bonjour" },
}).done(function(response) {
console.log(response); // Affichera $_POST['cart']
});
Fichier PHP ajax-save-cart.php :<?= $_POST['cart'] ?>Code : Tout sélectionner
save: function() {
// Convertissez le panier en chaîne JSON
const cartJSON = JSON.stringify(this);
document.cookie = "cart = " + cartJSON;
console.log(cartJSON);
displayCart();
},