Dav_c
Messages postés196Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention31 mai 2024
-
11 mars 2010 à 19:22
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 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
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 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)