Erste Ajax Funktion

form

Mitglied
Hallo,

ich habe mich bisher nicht mit AJAX beschäftigt und habe nun die letzten zwei Wochenenden mit entsprechender Literatur verbracht.

Ich möchte eigentlich nur folgendes Lösen:

Ich habe einen Wert in einem SPAN-Element, welcher sich durch eine Javascript Berechnung ändert. Dort möchte ich nun nach dem ändern einen zweiten Wert mithilfe einer Datenbank errechnen.

Ich möchte also WERT1 aus dem Span lesen und an ein PHP Script geben welches mir dann WERT2 zurück gibt und dann im Browser anzeigt.

Ich bekomme das einfach nicht hin. Das muss keine XML oder SPON Schnittstelle werden. Nur ein einziger Wert ist wichtig ;(

Gruß
form
 
Ich habe jetzt folgendes:

Code:
function preisvariabel(element) { 
preis=document.getElementById('preis').innerHTML;
$.ajax({
   type: "GET",
   url: "tarife/var_finanz.php",
   data: "preis="+preis,
   success: function(msg){ 

       $(element).empty()
       $('msg').appendTo(element);

   }
 });

}


Dabei ist in einem <strong id="preis"> der Preis als HTML hinterlegt.
Dieser Preis soll an die var_finanz.php übergeben werden. Die PHP wiederrum gibt einen neuen Preis als echo aus.
Dieser Wert soll in ein anderes <strong id="finanzierung">geschrieben/geändert werden.
Aufruf erfolgt über preisvariabel(´finanzierung´);
 
Das sieht eigentlich schon gut aus :)

Was nicht funktioniert, ist jenes:
Code:
success: function(msg){ 

       $(element).empty()
       $('msg').appendTo(element);
   }

msg ist lediglich ein String, appendTo() erwartet jedoch ein Element oder Textknoten.

Du kannst diese beiden Zeilen
Code:
$(element).empty()
$('msg').appendTo(element);
so zusammenfassen:
Code:
$(element).text(msg);

Der Textinhalt von #finanzierung wird damit durch die Rückantwort der PHP-Datei ersetzt.

Bei allem gesagten gehe ich davon aus, dass du der Funktion folgenden String als Parameter übergibst:
Code:
#finanzierung
 
Hab den Fehler gefunden... War tatsächlich im Aufruf des Scriptes (Nicht die #), total doof ;( Hab im Template den Aufruf ausserhalb vom OnChange gesetzt ;(

Kann ich nun noch irgendwie eine Abfrage starten, ob der übergebe Preis < 150 ist und dann ein div auf hidden stellen?

Danke!
 
Kann ich nun noch irgendwie eine Abfrage starten, ob der übergebe Preis < 150 ist und dann ein div auf hidden stellen?

Jo, natürlich.
ca. so:
Code:
success: function(msg){ 

       $(element).text(msg);
       if(msg<150){$('#idDesDivs').hide();}

   }

Beachte, dass als Dezimaltrennzeichen nur der Punkt zulässig ist....andernfalls würde msg bei dem Vergleich als String und nicht als Zahl interpretiert.
 
Super, jetzt klappt alles. Nur ein Problem habe ich noch. Das € Zeichen wird aus dem PHP mit übergeben. Dieses erscheint aber als &euro; - Wie bekomme ich die Formatierung weg?
 
Verwende anstatt
Code:
$(element).text(msg);
...
Code:
$(element).html(msg);

Aber: wenn du das €-Zeichen mit übergibst, ist msg keine Zahl mehr....dein Vergleich mit 150 wird nicht mehr die gewünschten Ergebnisse bringen.
Erzeuge das €-Zeichen besser mit JS, und lasse es nicht vom PHP-Skript übergeben.
 
Zurück