// ICI LE HAUT DE PAGE DE MON INDEX
require 'shop.php';
ici shop.php
$cart = 'votre panier est vide';
if ($_SERVER["REQUEST_METHOD"] == "POST" || $_SERVER["REQUEST_METHOD"] == "GET") {
$cartJSON = $_POST["cart"];
$cartData = json_decode($cartJSON, true);
$cart = $cartData; // Vous pouvez stocker ces données dans $cart pour une utilisation ultérieure.
var_dump($cart);
}
je repete que ce qui est frustrant ici c'est qu'aucune erreur ne surviens dans la l'inspecteur le code fait ce que je souhaite; C'est là que mes compétence s'arrete, entre le rendu de la page et le rendu de l'inspecteur. Le var dump de $cart s'affiche dans l'inspecteur mais pas à l'affichage Code : Tout sélectionner
$.ajax({
method: "POST",
url: "./index.php",
data: { cart: cartJSON },
cache: false, // Désactive la mise en cache
}).done(function(response) {
// Mettez à jour le contenu de l'élément avec l'ID "ajax"
document.getElementById('ajax').innerHTML = '<h5 class="modal-title">' + cartJSON + '</h5>';
});
displayCart();
},
Code : Tout sélectionner
document.getElementById('ajax').innerHTML = '<h5 class="modal-title">' + cartJSON + '</h5>';
.done(function(response) {
// Mettez à jour le contenu de l'élément avec l'ID "ajax"
document.getElementById('ajax').innerHTML = '<h5 class="modal-title">' + cartJSON + '</h5>';
alert(response);//affichera ce que la page appelée te répondra, bien sûr, à toi d'utiliser response comme tu le souhaite !
});<?php
$etatdupanier = 'le panier est vide';
if ($_SERVER["REQUEST_METHOD"] === "POST") {
// Récupérez les données du panier depuis la requête POST
$cartData = $_POST["cart"];
// Vous pouvez décoder les données JSON en un tableau PHP
$cart = json_decode($cartData, true);
// réponse au client
$etatdupanier= "Le panier a été enregistré avec succès.";
} else {
// Gérez les erreurs ou les requêtes non autorisées
$etatdupanier = "Requête invalide.";
}
// ici ces cette variable que je souhaite utiliser dans mon html
echo $etatdupanier;
?>require 'ajax-save-cart.php';
Etape 2 => dans shop.price.js j'execute Ajax au clique vers 'ajax-save-cart.php' comme proposé par Or1 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(response) {
// Ici nous retrouverons dan le html le contenu du panier dans un H5 mais c'est inutil à terme. C'est pour le test 1
document.getElementById('ajax').innerHTML = '<h5 class="modal-title">' + cartJSON + '</h5';
// Ici l'alerte retourne dans un l'état du panier ainsi que tout le code html de la page dans le test 2
alert(response);
// VOICI DONC MA PROBLEMATIQUE :
// Ici le code à jouter pour obtenir ces données JS (en traitant correctement la response), dans le fichier ajax-save-cart.php
...
});
displayCart();
}, ...
$etatdupanier = 'le panier est vide';
if ($_SERVER["REQUEST_METHOD"] === "POST") {
// Récupérez les données du panier depuis la requête POST
$cartData = $_POST["cart"];
// Vous pouvez décoder les données JSON en un tableau PHP
$cart = json_decode($cartData, true);
// réponse au client
$etatdupanier= "Le panier a été enregistré avec succès.";
} else {
// Gérez les erreurs ou les requêtes non autorisées
$etatdupanier = "Requête invalide.";
}
// ici ces cette variable que je souhaite afficher dans mon html : Test 3
echo $etatdupanier;
Etape 4 => Affichage dynamique en html.<div id="ajax"></div>
<h5 class="modal-title"><span class="text-left titre"> <?= $etatdupanier ?></span></h5>
Maintenant que la base est posée voici un compte rendu des différents tests énumérés dans les commentaires : Code : Tout sélectionner
{"PRODUCTS":[{"ID":2,"TITLE":"COMPATIBILITÉ","PRICE":49}],"TOTAL":49}
Code : Tout sélectionner
Le panier a été enregistré avec succès.
<!DOCTYPE html>
<html lang="fr">
...
</html>
Code : Tout sélectionner
REQUÊTE INVALIDE.
Oui, récupère ce que ajax-save-cart.php te renvoi via response (c'est la variable que utilise dans function(ici la variable) lors de ton appel AJAX).Si vous avez une idée de comment avancer pour que $etatdupanier soit chopé par le biais de la reponse et non de $cartJSON.
$.ajax({
type: "POST",
url: "./ajax-save-cart.php",
data: { cart: cartJSON },
cache: false,
}).done(function(ma_variable_nommee_differemment) {
console.log("ici les données de ajax-save-cart.php : " + ma_variable_nommee_differemment);
});Code : Tout sélectionner
$.ajax({
type: "POST",
url: "./ajax-save-cart.php",
data: { cart: cartJSON },
cache: false,
}).done(function($etatdupanier) {
console.log("ici les données de ajax-save-cart.php : " + $etatdupanier);
});
Code : Tout sélectionner
$etatdupanier
echo "Bonjour tout le monde !";
Dans ta fonction JS : $.ajax({
type: "POST",
url: "./ajax-save-cart.php",
data: { cart: cartJSON },
cache: false,
}).done(function(ma_variable_nommee_differemment) {
console.log("ici les données de ajax-save-cart.php : " + ma_variable_nommee_differemment); // ici s'affichera ce que echo le fichier PHP, soit "ici les données de ajax-save-cart.php : Bonjour tout le monde !"
});
La documentation jQuery : AJAX, utilise Google Traduction pour traduire si besoin.non, cette ligne ne sert à rien.Etape 1 => dans mon index.php j'execute 'ajax-save-cart.php'.
require 'ajax-save-cart.php';