Page 1 sur 1

rafraichier le panier

Posté : 26 nov. 2010, 13:56
par hackulous
Bonjour,

Dans ma page tete.inc.php j'ai mon panier dans une div avec id= panier.
Lors d'un ajout d'article, le panier qui contient le nombre d'article n'est pas mis à jour, faut que j'aille sur une autre page pour voir que le panier contient un article.
en gros lors d'un ajout d'article faut que le panier soit rafraichis mais comment faire ?

Merci d'avance

Re: rafraichier le panier

Posté : 26 nov. 2010, 21:09
par damaskinos
Salut,

Bien tu peux tout simplement rafraîchir la page sur laquelle tu es. Sinon tu ajoutes comment ton article montre un peu le code ?

Re: rafraichier le panier

Posté : 29 nov. 2010, 12:27
par hackulous
Bonjour,
& comment je rafraichis include_once('inc/tete.inc.php'); ?

Re: rafraichier le panier

Posté : 29 nov. 2010, 12:32
par xTG
Si je comprends bien le soucis il faudrait que tu traites l'ajout du produit avant toute inclusion impliquant un affichage (donc le tete.inc.php qui contient le panier).
De cette manière lorsque tu récupéreras les données pour les afficher dans le tete.inc.php tu auras le panier à jour.

Re: rafraichier le panier

Posté : 29 nov. 2010, 13:17
par hackulous
Merci xTG c'est vrai que c'est tout bête ! j'ai placé le inc après le traitement pour l'ajout d'article & c'est bon ça se met à jour.
mais pour ma page panier.php, j'ai les traitements dans le "body".
VOici mon code, en fait que je change le nombre d'article ou supprime, le panier ne se met pas à jour , voici mon code
<?php
session_start();
require_once('inc/connexion_base.inc.php'); // connexion à la base de données
include_once("inc/tete.inc.php");


/* ***** début de la page *****************/
	echo "<div class=\"fdservice\">";
		echo "<div id=\"ajout_img\"></div><p>&nbsp;</p>";
		echo "<p class=\"legend_contact\">France Automate : votre panier</p>";
	// modification de la quantité du panier (second passage)
	if(isset($_POST["nouv_qte"])){
		// récupération des variables
		$nouv_qte=$_POST["nouv_qte"];
		$indice=$_POST["indice"];
		if($nouv_qte==0){
			// si la nouvelle quantité est 0, on supprime la ligne
			unset($_SESSION["panier"][$indice]);
			if(!isset($_SESSION["panier"])){
				// si le panier est vide 
				echo "<p>&nbsp;</p><p>&nbsp;</p>";
				echo "<p class=\"serv\">Votre panier est vide !</p>";
				
			}
		}else{
			// sinon on modifie la quantité
			$_SESSION["panier"][$indice]["quantite"]=$nouv_qte;
		}	
	}
		// si il n'y a plus d'articles dans le panier (second passage)
		if(isset($_SESSION["panier"]) && (isset($_GET["suppr"]) || count($_SESSION["panier"])==0))
			{
				unset($_SESSION["panier"]);			
			}
			
		// vérification du panier
		if(!isset($_SESSION["panier"])){// si le panier est vide
			echo "<p>&nbsp;</p><p>&nbsp;</p>";
			echo "<p class=\"serv\">Votre panier est vide !</p>"; 
		} else {
			
		// récupération du panier dans la session
		$panier=$_SESSION["panier"];
		?>
		<table id="rounded-corner">
			<tr>
				<th align="left" colspan="2">Article</th>
				<th align="left">Version</th>
				<th align="right" nowrap >Quantit&eacute;</th>
				<th align="right" nowrap >Prix unitaire</th>
				<th align="right" nowrap >Frais de Port</th>
				<th align="right">Prix total</th>
			</tr>
		<?php
		$total=0; // total de la commande

		// affichage des articles
		foreach($panier as $indice=>$article){
		 
			$sql="SELECT * FROM distributeur WHERE id_dist=".$article["idD"];
			$res=mysql_query($sql) or die(mysql_error());
			$dist=mysql_fetch_assoc($res);
			$sous_total=$article["prix"]*$article["quantite"]+$article["port"]*$article["quantite"];
			?>
			<form action="panier.php" method="post" name="form<?php echo $indice; ?>">
			<tr>
				<td align="left" colspan="2" nowrap><a href="fiche_distributeur.php?idT=<?php echo $article["idt"]; ?>&idD=<?php echo $article["idD"]; ?>"><?php echo $article["nom"]; ?></a></td>
				<td align="left"><?php echo $dist["version"]; ?></td>
				<td align="right">
					<select name="nouv_qte" onchange="document.form<?php echo $indice; ?>.submit();">
					<?php for($i=0;$i<=10;$i++){ 
							if($i==$article["quantite"]){
								echo "<option value=\"$i\" selected=\"selected\">$i</option>";
							}else{
								echo "<option value=\"$i\">$i</option>";
							}
						   }
					?>
					</select>
				
				<td align="right" nowrap><?php echo number_format($article["prix"], 2, ',', ' '); ?> &euro;</td>
				<td align="right"><?php echo number_format($article["port"], 2, ',', ' '); ?> &euro;</td>
				<td align="right" nowrap><?php echo number_format($sous_total, 2, ',', ' '); ?> &euro;</td>
				<td style="background-color:#ffffff;">
				
                   
   					
						<input type="hidden" name="indice" value="<?php echo $indice; ?>"/>
						<input type="image" name="sup" src="images/supprimer.gif" onclick="javascript:document.form<?php echo $indice; ?>.nouv_qte.value='0';document.form<?php echo $indice; ?>.submit();"/>
					</form>
				</td>
			</tr>
			<?php
			
			$total+=$sous_total; // ajout au total
		}
		

		?>
			<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
				<td colspan="3" class="total">Total TTC : <b><?php echo number_format($total, 2, ',', ' '); ?> &euro;</b></td>
				
			</tr>
		</table>
		
		<p><a href="panier.php?suppr=tout">Vider le panier </a> </p>
		<p><a href="commande.php">Passer la commande </a> </p>
       
<?php	
}//fin si else
echo "<p>&nbsp;</p><p>&nbsp;</p>";
		echo "</div>";

echo "<p>&nbsp;</p><p>&nbsp;</p>";

 include_once("inc/footer.inc.php");

?>


Re: rafraichier le panier

Posté : 29 nov. 2010, 14:51
par xTG
Tout est question de structure après.
Mélanger traitement et affichage ou bien les séparer (MVC ou autre par exemple).