rafraichier le panier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : rafraichier le panier

Re: rafraichier le panier

par xTG » 29 nov. 2010, 14:51

Tout est question de structure après.
Mélanger traitement et affichage ou bien les séparer (MVC ou autre par exemple).

Re: rafraichier le panier

par hackulous » 29 nov. 2010, 13:17

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

par xTG » 29 nov. 2010, 12:32

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

par hackulous » 29 nov. 2010, 12:27

Bonjour,
& comment je rafraichis include_once('inc/tete.inc.php'); ?

Re: rafraichier le panier

par damaskinos » 26 nov. 2010, 21:09

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 ?

rafraichier le panier

par hackulous » 26 nov. 2010, 13:56

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