|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 6 ![]() |
Bonjour mesdames messieurs les développeurs,
j'utilise : -windows vista/XP -wamp (apache,php,mysql) -IE7 -freebox -librarie prototype.js Je poste ce message car je suis face à un problème pour lequel je n'ai pu trouver l'ébauche d'une réponse sur le web. J'essaye de développer une page dans laquelle le client va pouvoir entrer des données dans un <input type="text">. Ces données sont enregistrées avec l'ID du client dans une base MySql, via un AJAX.REQUEST. Ce dernier fait donc appel à un script php exécutant une requête SQL d'update. Ce partie fonctionne parfaitement. Le problème vient d'un autre AJAX.REQUEST donc l'objectif est de remplir les <input type="text"> lors du load de la page. Lors du premier load, les données insérées dans les input sont bien celles de la base de données. Mais, si le client modifie ces valeurs et recharge la page sur la même session du navigateur internet, les données insérées dans les inputs sont celles du premier load, alors que la base de données a bien été updatée. Evidemment, en ouvrant une nouvelle session Internet Explorer, les dernières données sont bien affichées. Code :
Code :
Code :
Donc, comment dois-je m'y prendre pour que cette variable soit rechargée à chaque load de la page avec les données renvoyées par la requête SQL du script php visé? J'espère avoir ne pas avoir été trop long ou trop confus, et j'espère également ne pas poser une question dont la réponse figure déjà quelque part (même si j'ai déja beaucoup cherché). Et d'autre part, je m'excuse d'avance si passe à coté d'une évidence, car je suis un débutant de quelques jours en javascript et ajax. Merci d'avance pour vos réponses. Pierre |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() Marc ChappuisDéveloppeur Web Inscription : décembre 2003 Messages : 1 535 ![]() |
Salut,
il s'agit peut-être d'un problème de cache de la requête ajax ? Tu pourrais essayer d'ajouter un paramètre changeant à ta requête par exemple parameters: {MemberID2: $MemberID, dummy: new Date().getTime() }, d'autre part, pour la mise à jour de tes donnée, une requête POST serait plus judicieuse (voir les principes REST)
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage ! |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 6 ![]() |
Salut Marcha,
Merci beaucoup à toi, ceci fonctionne parfaitement. Mais est-ce la seule solution pour forcer la requête à être réexécutée? En tout cas merci beaucoup. Petite question: j'ai modifié le GET en POST, mais dans le cadre d'une requête AJAX en quoi est-ce plus judicieux ? Pierre |
|
|
00
|
|
|
#4 |
![]() ![]() Marc ChappuisDéveloppeur Web Inscription : décembre 2003 Messages : 1 535 ![]() |
Non, ce m'est pas la seule solution, tu peux aussi gérer les entêtes HTTP
appropriés pour la gestion du cache (pragma, cache-control, etc...) Mais cette solution est simple et fiable. En ce qui concerne l'usage d'un GET ou d'un POST, tu peux jeter un oeil sur les principes REST (voir sous wikipedia est suivre les liens) Un GET ne devrait pas affecter l'état de la base de donnée. Donc POST est préférable pour faire un update. Un exemple de mésaventure à l'appui: J'avais fait des liens pour supprimer des enregistrements dans mon agenda en utilisant la méthode GET, par exemple: remove.php?id=2 Tout marche bien jusqu'au jour ou google a indexé mon agenda, il a visité tous les liens et donc supprimé tous les enregistrement :-) C'est juste un exemple, qui n'a rien à voir avec Ajax. Mais il y a plein d'autres bonne raisons pour utiliser les methodes appropriées suivant les actions souhaitée (je te laisse lire les principes REST).
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage ! |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 6 ![]() |
Merci beaucoup pour ton aide. J'irai faire un tour sur Wikipédia.
Bonne continuation A bientôt Pierre |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com