Bonjour, actuellement en periode de stage je travaille sur le site web de l'entreprise fbi-distribution qui vend des consommables informatiques et mon soucis est que lorsque l'on va dans le panier il est possible de choisir son pays de livraison ainsi que son mode d'expedition et donc les frais de port varies selon les pays et les transporteur. Mon probleme est que lorsque je change de pays je doit recupérer dans une base de donnée la valeur des frais de port en fonction du pays et du transporteur. Je vais faire un exemple car il est difficle d'expliquer mon probleme.
lorsque l'on achete un produit et que l'on va dans le panier on a pays de livraison qui est par defaut la france et le mode d'expedition qui est la poste colissimo et le frais de port correspond bien a la valeur dans la base de donnée.
Maintenant je change de pays et je prend l'allemagne le seul mode d'expedition possible est colissimo europe avec des frais de port plus eleves mais le calcul ne se fait pas et je remet la france et la les frais de port afficher sont ceux de l'allemagne il a donc un certain retard voila je vous montre le code j'espere que quelqu'un pourra m'aider merci d'avance
Voici ma fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function show_basket()
{
 
	$db=&$GLOBALS["db"];
	$histo=&$GLOBALS["histo"];
	$uid=&$_SESSION["uid"];
	$pays_liv=&$_SESSION["pays_liv"];
	$mode_exp=&$_SESSION["mode_exp"];
	$usr_typ=&$_SESSION["usr_typ"];
	// Si panier vide: message d'erreur
	if(!frmt_basket_contain($basket,$total)) messagebox(ret("0015"),ret("0016"),true,false);
	print_basket_contain($basket,$total,false);
	// Zone de selection du pays de livraison et du mode d'exp�dition
?>
<TR>
	<TD colspan=4 rowspan=2 class=none>
		<TABLE width=100%><TR><TD class=none>&nbsp;</TD><TD class=none><?php str("0034"); ?></TD><FORM method=GET action=basket.php><TD class=none>
<SELECT name=pays_liv onChange=javascript:submit()>
<?php
		if($usr_typ=="pro") $query="SELECT k_pays,".DES_C." FROM t_pays WHERE k_pays=$pays_liv";
		else $query="SELECT k_pays,".DES_C." FROM t_pays ORDER BY ".DES_C;
		$db->query($query);
		while(($row=$db->fetch_row()))
			echo ($pays_liv==$row[0])?
				"<OPTION selected value=$row[0]>".frmt_to_html($row[1])."</OPTION>":
				"<OPTION value=$row[0]>".frmt_to_html($row[1])."</OPTION>";
?>
 
</SELECT>
		</TD><TD class=none> &nbsp; &nbsp; &nbsp; <?php str("0035"); ?></TD><TD class=none>
<SELECT name=mode_exp onchange=javascript:submit()>
<?php
	if($usr_typ=="pro")
		$query=sprintf("SELECT t_typ_trans.k_typ_trans,%s FROM t_typ_trans,t_clt WHERE k_clt=%d AND (t_clt.k_typ_trans=t_typ_trans.k_typ_trans OR t_typ_trans.k_typ_trans=%d) ORDER BY t_clt.k_typ_trans=t_typ_trans.k_typ_trans,%s",DES_C,$uid,ENLEV_O_DEPOT,DES_C);
	else
		$query=sprintf("SELECT t_typ_trans.k_typ_trans,%s FROM t_typ_trans,t_pays_trans WHERE t_pays_trans.k_pays=%s AND t_typ_trans.k_typ_clt='part' AND t_pays_trans.k_typ_trans=t_typ_trans.k_typ_trans ORDER BY %s",DES_C,$pays_liv,DES_C);
		$db->query($query);
		while(($row=$db->fetch_row()))
			echo ($mode_exp==$row[0])?
				"<OPTION selected value=$row[0]>".frmt_to_html($row[1])."</OPTION>":
				"<OPTION value=$row[0]>".frmt_to_html($row[1])."</OPTION>";
?>
</SELECT>
		</TD></FROM><TD class=none>&nbsp;</TD></TR></TABLE>
<?php	
	print_trans_and_total($total);
	printf("<BR><TABLE class=fixed><TR><TD colspan=3 class=none>%s</TD></TR>",ret("0039"));	// Frais de port calcul�s en fonction du poids_ou_prix, pays, transporteur
?>
<TABLE class=fixed>
<?php
	if($_SESSION["uid"]==-1) $links=array(array("",ret("0036")),array(HTTPS."basket.php?todo=login_box",ret("0027")),array("main.php",ret("0037")));
	else $links=array(array("",ret("0036")),array(HTTPS."basket.php?todo=clt_form",ret("0027")),array("main.php",ret("0037")));
	print_return_arr($links);
}