Partage
  • Partager sur Facebook
  • Partager sur Twitter

Panier e-commerce modification variables php

Sujet résolu
    4 mars 2015 à 16:07:11

    Bonjour à tous,

    J'ai déjà crée un post il y a quelques semaines sur mon panier et un peu avancé depuis mais je reste toujours bloqué.

    Tout d'abord, voici à quoi il ressemble visuellement : 

    Il est codé en php, en voici le code : 

    $_SESSION['panier'] = array();
    $_SESSION["panier"]['idPho'] = array();
    $_SESSION["panier"]['format'] = array();
    $_SESSION["panier"]['finition'] = array();
    $_SESSION["panier"]['qte'] = array();
    $_SESSION["panier"]['position'] = array();

    Voici comment est affiché le panier ( exemple avec les quantités seulement, ça risque d'etre trop long sinon )

    <?php
    	$nb_photos = count($_SESSION["panier"]['idPho']);
    
    	for($i = 0; $i < $nb_photos; $i++){
    
    		$reponse = $DB->requete("SELECT * FROM photo WHERE idPho=:id", array(
    			"id" => $_SESSION["panier"]['idPho'][$i]
    			));
    ?>
    <!-- quantité -->
    <td>
    	<select name="quantite" class="quantite" id="quantite">
    		<?php 
    			for($j = 1; $j < 11; $j++){
    				if($_SESSION["panier"]["qte"][$i] == $j){
    					echo '<option selected value="'.$j.'">'.$j.'</option>';
    				}
    				else {
    					echo '<option value="'.$j.'">'.$j.'</option>';
    				}
    			}
    				?>
    	</select>
    </td>
    <?php 
    	}
    ?>

    Mon but est que lorsque le client va choisir une autre option parmi les select ( format, finition, ou quantité ), la valeur qui choisit soit modifiée dans la variable session panier.

    Pour cela, j'ai utilisé de l'ajax :

    $('.quantite').on('change', function(){
    
    		var params = "qte=" + $(".quantite").val() + "&id=" ;
    
    		$.ajax({
    			type: 'POST',
    			url: 'ajax/ajax.php',
    			data: params,
    			success: ajaxOK
    		});
    	});
    function ajaxOK(data){
    
    		console.log(data);
    		$('#ajax').html(data);
    
    	}


    puis je réaffiche le html/php avec l'ajax

    <!-- quantité -->
    <td>
    	<?php
    		if(isset($_POST["qte"])){
    			$_SESSION["panier"]['qte'][$i] = $_POST["qte"];
    		}
    	?>
    	<select name="quantite" class="quantite" id="quantite">
    	<?php 
    			for($j = 1; $j < 11; $j++){
    				if($_SESSION["panier"]["qte"][$i] == $j){
    					echo '<option selected value="'.$j.'">'.$j.'</option>';
    				}
    				else {
    					echo '<option value="'.$j.'">'.$j.'</option>';
    				}
    		        }
    	?>
            </select>
    </td>


    2 problèmes majeures se posent lorsque a moi maintenant et je ne sais du tout comment m'y prendre pour les résoudres c'est pourquoi je demande votre aide :

    - lorsque je sélectionne une quantité sur une des lignes du panier, c'est toujours la valeur de la premiere lignes qui est prise en compte 

    - je ne sais pas comment cibler un article dans le panier afin que les modifications soit apportées seulement sur cet articles. J'ai crée une case dans le tableau session panier qui contient la position d'un article mais je ne sais pas comment faire pour la passer dans l'ajax

    Si vous souhaitez voir vous même le fonctionne du panier, je vous invite à vous rendre sur http://garyhembert.webatu.com/album.php, qui est encore en travaux, ajouter quelques photos au panier ( image_fond, ajouter au panier) puis vous rendre sur la page panier.

    J'espère que vous aller pouvoir m'aider sur cette impasse,

    Antoine

    -
    Edité par prudywsh 4 mars 2015 à 16:07:25

    • Partager sur Facebook
    • Partager sur Twitter
      4 mars 2015 à 16:18:04

      Salut,

      Tu peux utiliser l'attribut data- pour retenir des valeurs dans le HTML.

      Par exemple :

      <select name="quantite" class="quantite" id="quantite" data-id="<?php echo $i; ?>">

      Ensuite en JS :

      ('.quantite').on('change', function(){
          var $this = $(this),
              params = "qte=" + $this.val() + "&id=" + $this.data("id");
          // l'ajax ici
      });

      Il te suffit ensuite de récupérer l'id côté PHP pour mettre à jour la valeur souhaitée.

      • Partager sur Facebook
      • Partager sur Twitter
      Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
        5 mars 2015 à 11:13:29

        Alors la franchement, merci beaucoup.

        Tu as résolu 2 de mes problèmes qui m’embêtaient depuis un bout de temps d'un coup.

        Je ne connaissais pas du tout cette technique et je vais la garder dans un coin de ma tête je crois bien parce que ça marche niquel haha ;)

        Merci beaucoup à toi et bonne journée !  

        • Partager sur Facebook
        • Partager sur Twitter

        Panier e-commerce modification variables php

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown