Panier d'achat mis a jour

Signaler
Messages postés
194
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
11 décembre 2015
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
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)
Messages postés
194
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
11 décembre 2015

Malheureusement, marche pas.
Messages postés
194
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
11 décembre 2015

up.... Help
Messages postés
194
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
11 décembre 2015

ok maintenant sa marche mais le dernière item aparrait et disparait puis ensuite reaparais ect.. jusqua ce que sa se stabilise...
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
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)