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
A voir également:

5 réponses

PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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
18
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