2010-12-15 8 views
0

Nun, meinen Problemen ist ein wenig seltsam,Wirklich seltsam PHP Verhalten mit AJAX mit jQuery

Ich habe einen Ajax-Request nur eine Nummer zu bekommen.

Diese Nummer ist gedruckt auf: getMoney.php. Auf index.php Ich habe die AJAX-Anfrage.

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 
          } 
        }); 
       }); 
      } 
     } 

Die Funktion wird aufgerufen, wenn ich einen Wert auf einer Combobox HTML ändern

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

Nun ... Mein Problem: Wenn ich die Zahlen aufschreiben auf GETMONEY .php (mannualy) es funktioniert perfekt, die AJAX bekommen es und die Aktion ist fertig, aber wenn ich die Zahlen aus meiner Datenbank bekomme, bekomme ich nur 0. Ich öffne Mannially auch die getMoney.php, und die Zahlen sind da! auch wenn ich es von der Datenbank bekomme.

Was ist los?

+0

All dies ist auf meinem MVC verinnerlicht, ich vereinfacht für undestanding, aber der MVC funktioniert richtig, es ist ein seltsames Verhalten von AJAX – MDiaz

+4

können Sie den Code für getMoney.php post? – JohnSmith

+2

Sie zeigen uns den falschen Codeabschnitt. Wir brauchen die getMoney.php, und wenn Sie schwören, ist die ausgegebene Zahl korrekt, was in Ihrem AJAX-Erfolgshandler ist. – Matt

Antwort

2

stellen Sie sicher, dass getMoney.php verwendet nicht Ihre Standard-View-Header, d. H. Skript enthält, Stylesheet enthält oder irgendetwas anderes. Außerdem ist es besser, wenn getMoney.php eine JSON-Zeichenkette mit Ihren parametrisierten Daten zurückgibt, so dass Sie sowohl Diagnose- und Fehlercodes als auch spezifische Daten zurückholen können. Dies wird beim Debuggen helfen. Schauen Sie sich $.getJSON() an, wenn Sie Hilfe brauchen.

+0

Ausgezeichnet !! das hat für mich funktioniert! der JSON war das Problem! Vielen Dank – MDiaz

0

Das XHR Objekt wird alle Anforderung durch die URL-Cache, können Sie dieses Problem beheben, indem nur eine zufällige Zeichenfolge, wie diese anhängt:

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

jQuery tut dies, wenn Sie 'cache: false' setzen. – jwueller

0

installieren Firebug Plugin https://addons.mozilla.org/en-US/firefox/addon/1843/ in Firefox.

Sobald Sie das Plugin installiert haben, wird auf der rechten Seite der Statusleiste ein Fehlersymbol angezeigt.

Klicken Sie darauf. Dann ändern Sie das Auswahlfeld. Es wird eine Linie in der Firebug-Konsole geben.

Dort können Sie alle an den Server gesendeten Daten und die Antwort vom Server sehen. Dies wird Ihnen helfen, das Problem zu identifizieren.