Panier d'achat mis a jour

Dav_c Messages postés 194 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 décembre 2015 - 11 mars 2010 à 19:22
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 17 mars 2010 à 18:04
Bonjour, je code un script de e-commerce qui pour l'instant marche sans problème sauf que le panier ne s'actualise pas toujours.

Bref un peu de code et une description du probleme a la suite.

<script type="text/javascript">
var nouvdep=15;

function boucle(){
var xhr_object = null; 
if(window.XMLHttpRequest) // Firefox 
   xhr_object = new XMLHttpRequest(); 
else if(window.ActiveXObject) // Internet Explorer 
   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
else { // XMLHttpRequest non supporté par le navigateur 
   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
   return; 
} 

var div = div;
var file = 'panier.php';

xhr_object.open("GET", file, true); 

xhr_object.onreadystatechange = function() { 
   if(xhr_object.readyState == 4){
document.getElementById('Panier').innerHTML = xhr_object.responseText;
   }
}  
xhr_object.send(null);
}
setTimeout('boucle()',nouvdep);
</script>


le but est que ce code devrait rafrechir la div panier, mais il ne le fait pas toujours enfaite je n'en connais que très peu sur le javascript mais je soupçone la boucle de partir folle ou meme d'être trop rapide pour ajax.


voici la div:

<?php include('panier.php');?>


et la page panier.php
<?php
session_start(); // Démarage de la session OBLIGATOIRE
include('admin/conf.php');
/////////////////Connection a la DB//////////////////////////
$connect=mysql_connect($sql_serveur,$sql_user,$sql_pass);
mysql_select_db($sql_db, $connect);

?>
<table width="98%" border="1">
  <tr>
    <td>

<?php
////////////affichage panier/////////////
$Panier=split('
', $_SESSION['Article_session']);

for ( $i=0, $c=count($Panier); $i<$c; $i++){
$Article=split('-', $Panier[$i]);

$ID_article=substr($Article[0],2,strlen($Article[0]));
$NB_article=substr($Article[1],2,strlen($Article[1]));

$result=mysql_query("SELECT * FROM web_achat_articles WHERE ID='".$ID_article."'");
while($row=mysql_fetch_array($result)){
if($NB_article!=''){echo $row['NomFR'].' x '.$NB_article.'
';}
}
}///fin for

?>




A j'allais oublié l'achat d'article se fait par une popup, donc je dois utiliser un timer ou autre...



Ps: le code n'est pas encore optimisé mais je suis ouvert au critique

5 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
11 mars 2010 à 20:26
Bonjour,
problème possible de cache
si c'est le cas mettre un paramètre farfelue à l'url
exemple :
var Date = new Date();
xhr_object.open("GET", file +"?milliseconds=" + Date.getTime(), true);
ou un truc dans ce goût...
;O)
0
Dav_c Messages postés 194 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 décembre 2015
12 mars 2010 à 22:58
Malheureusement, marche pas.
0
Dav_c Messages postés 194 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 décembre 2015
16 mars 2010 à 22:32
up.... Help
0
Dav_c Messages postés 194 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 décembre 2015
16 mars 2010 à 22:41
ok maintenant sa marche mais le dernière item aparrait et disparait puis ensuite reaparais ect.. jusqua ce que sa se stabilise...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 mars 2010 à 18:04
Bonjour,
je supprimerais l'appel setTimeout('boucle()',nouvdep); et appellerais la fonction sur le onload du BODY...
par compte pas sur que cela change quelque chose puisse que ça marche presque si je suis bien...
;O)
0
Rejoignez-nous