Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2011, 03h18   #1
Nouveau Membre du Club
 
Homme
Inscription : décembre 2009
Messages : 144
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 144
Points : 30
Points : 30
Par défaut Tableau qui ne se rafraichit pas après un onchange

Bonjour,

J'ai un soucis avec un tableau qui ne se met pas à jour après un onchange, je m'explique.
J'ai un fichier appelé index2.php dans lequels j'ai mis un menu deroulant. Lorsque je selectionne un element dans ma liste cela appele un fichier getuser2.php qui m'affiche un tableau grace à une variable passée dans l'URL.
Jusqu'ici tout va bien, mon problème interviens lorsque je fais des modifications dans ma base de donnée, le résultat ne se met pas à jour dans mon tableau, c'est comme si pour chaque selection dans mon menu déroulant, la page getuser2.php ne se mettais pas à jour. Je dois fermer puis réouvrir une nouvelle page pour que les données soient mis à jour dans mon tableau.
J'ai testé le rafraichissement de div sans succes.

index2.php
Code :
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
 
<script type="text/javascript">
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getuser2.php?q="+str,true);
xmlhttp.send();
}
</script>
</head><body>
<div id="pnlControls">
<table>
<tbody>
<tr>
<td><a href="base.php?Action">Base</a></td>
</tr>
</tbody></table><br>
<span id="lblTotalUtil" style="vertical-align: top;">Select Account:</span> 
<select name="users" onchange="showUser(this.value)">
<option value="">Select:</option>
<option value="456">FFO</option>
<option value="123">FFI</option>
</select><br><br>
<div id="txtHint"><b>Info will be listed here.</b></div>			
</div>
</form>
getuser2.php
Code :
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
 
<div id="containtbl">
  <div id="tablheader">
    <table id="topcol" cellspacing="0">
     <tbody>
		 <?php $q=$_GET["q"]; 
 
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
    die('Not connected : ' . mysql_error());
}
 
if (! mysql_select_db('cutback') ) {
    die ('Can\'t use foo : ' . mysql_error());
}
$row = mysql_fetch_array ( mysql_query("SELECT * FROM `cutback` WHERE `Activity_Date` = '2010-12-13' AND `Account` = '".$q."'"));
?>
 
   </tbody></table>
  </div>
  <div id="rightabletotal">	
    <table id="rightbltotal" cellspacing="0">		
		<tbody>
     <tr class="th1b">
       <td class="th1">Base</td>
       <td class="th1">Plan</td>
     </tr>
		 <tr>
        <td><?= round(stripslashes($row['LinesBase'])) ?></td>
        <td><?= round(stripslashes($row['LinesPlan'])) ?></td>
		  </tr>
   </tbody></table>
  </div>
  	</div>
Pourriez vous m'aider, merci par avance.
Budy123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 12h09   #2
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Il faudrait un peu plus d'information sur comment tu met a jour ta base de données

Je pense que le problème est un simple problème de cache lié au navigateur.

Il suffit que tu rajoute dans ta requête un nombre aléatoire que tu n'utilisera pas ensuite :

Code :
xmlhttp.open("GET","getuser2.php?q="+str+"&random="+Math.floor(Math.random()*10000),true);
Par exemple.

Cependant je te conseillerais plutôt de regarder du coté des librairies javascript comme jQuery ou Mootools pour faire cette partie ajax (et bien plus encore) car ce genre de choses sont nativement prise en compte.

Dans le même principe dans ton code getuser2.php tu définie une div et une table autour de ta requête sql mais qui n'affiche rien, c'est inutile et cela alourdi le dom pour pas grand chose
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 13h34   #3
Membre habitué
 
Homme Lucas GAUTHERON
Lycéen
Inscription : décembre 2008
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Lucas GAUTHERON

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : décembre 2008
Messages : 106
Points : 145
Points : 145
et protège toi contre les injections SQL au passage
lucas74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h45.


 
 
 
 
Partenaires

Hébergement Web