11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

- j'ai réalisé un panier en php avec des variables de session (référence et quantité).
- j'ai réussi à créer des boutons +/- pour changer la quantité des produits et la mise à jour du total en Jquery.
- je souhaiterai également modifier la valeur de ma variable de session (quantité) lorsque l'on clique sur les boutons +/-, afin que mon panier soit à jour.

D'après mes recherches, il faut utilisé une requête Ajax pour réaliser cette action sans reloader la page. Ceci dit, je n'ai pas trouvé d'exemple concret et je vous avoue ne pas comprendre grand chose.

Si vous avez un tutorial ou une piste à me donner !!
Merci de votre aide
Bien... j'ai avancé sur ma compréhension d'Ajax et de son fonctionnement.

- dans mon panier, j'ai mis des liens sur mes boutons +/- qui appelle une fonction
onclick="change_var(<?php echo ($i.",0");?>);return false;"
onclick="change_var(<?php echo ($i.",1");?>);return false;"


- mon fichier javascript lié au panier
/*************************************************
	Fonction de definition de l'object xhr
**************************************************/
function new_xhr(){
	var xhr_object = null;
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
	   try {
                xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
            }
	}
	else { // XMLHttpRequest non supporté par le navigateur
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	   xhr_object = false;
	}
	return xhr_object;
}
/*****************************************************
	Fonction qui va modifier la viriable de session
******************************************************/
function change_var(str, str2) {
	var xhr2 = new_xhr();//On crée un nouvel objet XMLHttpRequest
	xhr2.open("GET", "calcul.php?id="+str+"&qte="+str2, true);//Appel du fichier externe
	xhr2.send();
}


-puis le fichier php qui met à jour ma variable de session
$QTE=$_GET["qte"];
$ID=$_GET["id"];
if($QTE == 1){
     $_SESSION ['monpanier']['quantite'][$ID]++;	
}elseif($QTE == 1){
     $_SESSION ['monpanier']['quantite'][$ID]--;
}


Bien entendu ça ne fonctionne pas.
A mon avis c'est la syntaxe de ma fonction "change_var" qui ne va pas.
Qu'en pensez vous ?
je m'en suis sorti tout seul.
c'est mon fichier php qui était fait à la va vite
voici le bon code... (avec session_start c'est déjà mieux)
session_start();
$QTE=$_GET['qte'];
$ID=$_GET['id'];

if($QTE == 1){
    $_SESSION ['monpanier']['quantite'][$ID]++;
}elseif(($QTE == 0) && ($_SESSION ['monpanier']['quantite'][$ID] >1)){
	$newqte = $_SESSION ['monpanier']['quantite'][$ID];
    $_SESSION ['monpanier']['quantite'][$ID]--;
}

Voilà, ça fonctionne mais le code peut surement être optimisé
si vous avez des idées, ça m'aidera a progresser !