2010-12-15 64 views
0

Eh bien, mes problèmes est un peu bizarre,comportement PHP vraiment étrange avec AJAX avec Jquery

J'ai une demande AJAX pour obtenir juste un numéro. Ce numéro est imprimé sur: getMoney.php. Sur index.php J'ai la demande AJAX.

Ajax Code:

function getMoney(selected) 
     { 
      if(selected.value != -1) 
      { 
       // Obtener presupuesto via AJAX 
       $(document).ready(function(){ 
        $.ajax({ 
          url: "getMoney.php", 
          async: true, 
          success: function(datos){ 
           //My action 
          } 
        }); 
       }); 
      } 
     } 

La fonction est appelée lorsque je change une valeur sur un Combobox HTML

<select name="area_id" onchange="getMoney(this);"> 

Eh bien ... Mon problème: Si j'écris les chiffres sur getMoney .php (mannualy) son fonctionne parfaitement, l'AJAX l'obtient et l'action est faite, mais quand j'obtiens les nombres de ma base de données j'obtiens juste 0. J'ouvre mannualy aussi le getMoney.php, et les nombres SONT là! même si je l'obtiens de la base de données.

Qu'est-ce qui ne va pas?

+0

Tout cela est embarqué sur mon MVC, je simplifié pour ne pas poser de problèmes, mais le MVC fonctionne correctement, c'est un comportement étrange de AJAX – MDiaz

+4

pouvez-vous poster le code pour getMoney.php? – JohnSmith

+2

Votre nous montrant la mauvaise section de code. Nous avons besoin du getMoney.php, et si vous jurez que le nombre sorti est correct, quoi dans votre gestionnaire de succès AJAX. – Matt

Répondre

2

Assurez-vous que getMoney.php n'utilise PAS vos en-têtes de vue standard, c'est-à-dire les scripts inclus, les stylesheet inclus ou toute autre chose. En outre, il est préférable d'avoir getMoney.php pour renvoyer une chaîne JSON avec vos données paramétrées de telle sorte que vous puissiez récupérer les codes de diagnostic et d'erreur ainsi que des données spécifiques. Cela aidera au débogage. Regardez $.getJSON() si vous avez besoin d'aide pour cela.

+0

Exelent !! ça a marché pour moi! le JSON était le problème! Merci beaucoup – MDiaz

0

L'objet XHR en cache toute demande de l'URL, vous pouvez corriger cela en tout annexant une chaîne aléatoire, comme ceci:

$.ajax({ 
    url: "getMoney.php?r=" + new Date().getTime(), 
    async: true, 
    success: function(datos){ 
     //Your action 
    } 
}); 
+1

jQuery fait cela si vous définissez 'cache: false'. – jwueller

0

installer le plugin Firebug https://addons.mozilla.org/en-US/firefox/addon/1843/ dans Firefox. Une fois le plugin installé, un symbole de bogue apparaît dans la partie droite de la barre d'état.

Cliquez dessus. Ensuite, changez la boîte de sélection. Il y aura une ligne dans la console firebug.

Vous pouvez y voir toutes les données envoyées au serveur et la réponse du serveur. Cela vous aidera à identifier le problème.