[RESOLU] pb ajax, jquery, variable session

pb ajax, jquery, variable session [RESOLU] - HTML/CSS - Programmation

Marsh Posté le 29-02-2012 à 22:47:30    

Bonjour,
 
J'ai un bug que je n'arrive pas à résoudre.
 
J'appelle un script php en ajax qui modifie une variable session  $_SESSION['mavariable']
 

Code :
  1. function temp()
  2. {
  3.      $.ajax({
  4.           type: "GET",
  5.           url: "/include/temp.php",
  6.           // data: "total_commande=" + total_commande ,
  7.           success: function(msg){
  8.                      $('#temp').empty().append(msg);
  9.                    },
  10.      });
  11. }


 
je fais un echo $_SESSION['mavariable'] dans temp.php et donc mon div "temp" affiche cette variable
Mais parfois , aléatoirement, la variable ne s'actualise pas
J'ajoute un echo date("H:m:s" ); dans mon temp.php pour voir si l'ajax et bien effectué et bien oui, il n'y a que la variable session qui ne s'actualise pas parfois
Si je clique de nouveau, le script fonctionne bien
 
Avez une idée de où ça peut venir, ou du moins une piste que je pourrais exploiter pour essayer de débugger??
 
 
Merci d'avance


Message édité par networkinfo le 08-03-2012 à 23:18:21
Reply

Marsh Posté le 29-02-2012 à 22:47:30   

Reply

Marsh Posté le 01-03-2012 à 09:49:50    

Ben ta variable de session elle est initialisée quand ? ou ? comment ?


---------------
Blablaté par Harko
Reply

Marsh Posté le 01-03-2012 à 10:08:28    

Elle est initialiser par temp.php au chargement de la page
Puis je rappelle temp.php pour le modifier en ajax

Reply

Marsh Posté le 01-03-2012 à 13:19:50    

Tain mais on veut du code bordel


---------------
Blablaté par Harko
Reply

Marsh Posté le 01-03-2012 à 21:29:43    

Merci pour ton attention
Je comprends ta demande mais dans le sens ou mon script "fonctionne", je ne vois pas l’intérêt de les paster.
 
Quand je clique sur mon bouton ça marche, mais parfois ça ne marche pas, le div ne s'actualise pas,aussi bien sur firefox que sur  IE
 
Il semblerait même que ce ne soit pas un pb de sessions car j'ai un div avec du texte qui parfois ne s'actualise pas.
 
Par contre quand je reclique, les cliquent suivant on bien été pris en compte
 
Je n'ai pas réussi à checker les erreurs sur la fonction ajax???
 
EDIT:
temp.php

Code :
  1. <?php
  2. echo $_SESSION['mavariable'] = date("H:m:s" );


 
 

Code :
  1. function temp()
  2.     {
  3.          $.ajax({
  4.               type: "GET",
  5.               url: "/include/temp.php",
  6.               // data: "total_commande=" + total_commande ,
  7.               success: function(msg){
  8.                          $('#temp').empty().append(msg);
  9.                        },
  10.          });
  11.     }
  12. <div id="temp"></div>


Message édité par networkinfo le 01-03-2012 à 21:37:04
Reply

Marsh Posté le 01-03-2012 à 21:52:14    

Re
J'ai appparemment résolu ce "bug" en rajoutant
      async: false, dans ma fonction ajax
 

Code :
  1. function temp()
  2. {
  3.      $.ajax({
  4.           type: "GET",
  5.          cache:false,
  6.          async: false,
  7.           url: "/include/temp.php",
  8.           // data: "total_commande=" + total_commande ,
  9.           success: function(msg){
  10.                      $('#temp').empty().append(msg);
  11.                    },
  12.      });
  13. }


 
Qu'en pensez vous?

Message cité 1 fois
Message édité par networkinfo le 01-03-2012 à 21:53:07
Reply

Marsh Posté le 02-03-2012 à 10:12:11    

non non non, tu perds l'intérêt de l'ajax, donc je pense que tu as merdé du coté de PHP


---------------
Blablaté par Harko
Reply

Marsh Posté le 02-03-2012 à 15:46:09    

pas d'erreur dans les logs pour mes scripts
Pas d'erreur de la fonction ajax
Je vais continuer à chercher mais....

Reply

Marsh Posté le 02-03-2012 à 15:54:00    

tain mais c'est ta facon de programmer, c'est l'archi de ton programme qui doit être bancal


---------------
Blablaté par Harko
Reply

Marsh Posté le 02-03-2012 à 16:01:40    

networkinfo a écrit :

Re
J'ai appparemment résolu ce "bug" en rajoutant
      async: false, dans ma fonction ajax
 

Code :
  1. function temp()
  2. {
  3.      $.ajax({
  4.           type: "GET",
  5.          cache:false,
  6.          async: false,
  7.           url: "/include/temp.php",
  8.           // data: "total_commande=" + total_commande ,
  9.           success: function(msg){
  10.                      $('#temp').empty().append(msg);
  11.                    },
  12.      });
  13. }


 
Qu'en pensez vous?


 
Par rapport à ton premier code, tu as aussi ajouter "cache: false". Ça pourrait expliquer pourquoi ça marche mieux (Internet Explorer en particulier a la désagréable tendance à mettre en cache les requêtes ajax)

Reply

Marsh Posté le 02-03-2012 à 16:01:40   

Reply

Marsh Posté le 02-03-2012 à 16:12:31    

Oui mais même problème sans async: false
Cache:false ne suffit pas...

Reply

Marsh Posté le 08-03-2012 à 22:22:43    

Je pense avoir trouver et j'aimerais vos conseils
J’exécute 2 fonctions ajax à la suite
 
La 1ère traite les variables et la 2e affiche le résultat dans le div
Les deux se faisant pratiquement instantanément parfois le div s'actualise avec les valeurs précédentes de mes variables .
 
D'ailleurs avec l'option " async: false' je n'ai plus de problèmes
 
A votre avis
-Je m'y prends comme un pieds et il faut que je revois le code notemment ne pas faire de ajax de suite
-Y a quelquechose à faire , une option quelquepart? :-)
 
Merci d'avance


Message édité par networkinfo le 08-03-2012 à 22:22:56
Reply

Marsh Posté le 08-03-2012 à 23:19:32    

Pb résolu c'était bien l'enchaînement de fonctionas ajax qui posait pb
Dans ce cas il faut éxécuter la fonction suivante quand la première est terminée:
 

Code :
  1. $.ajax({
  2.           type: "GET",
  3.           url: "/include/traitement_panier.php",
  4.           data: "id=" + id + "&action="  + action,
  5.           success: function(msg)
  6.     {
  7.      fonction2();
  8.     }
  9.      });


Message édité par networkinfo le 08-03-2012 à 23:19:59
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed