De waarde wordt nu pas weergegeven nadat de pagina vernieuwd wordt en dat is vervelend als je iets uitrekent en daarna de pagina moet vernieuwen om het resultaat te zien.
Stuur in isolatie_calc.php alleen de uitgerekende waarde terug :
echo $_SESSION['besparen'];
En verwerk de ontvangen waarde :
$("#resultaat").html('Uw besparing per jaar voor dit is : €' + resultaat);
$("#besparing").html(resultaat);
Dank je voor de uitleg. Ik heb deze toegepast en het werkt zodra er een keus in een dropdown gemaakt wordt. Kom je voor het eerst op de pagina dan krijg je
Uw besparing per jaar voor dit is : [object HTMLParagraphElement]
Ik weet niet wat je allemaal uitspookt, maar dit slaat nergens op.
Beetje aan het testen en denk dat je net op het verkeerde moment keek. :)
Nog even een vraagje.
Ik probeer het resultaat van de besparing bij zichzelf op te tellen. Dit omdat er nog meer isolatie soorten zijn met een besparingsresultaat en die wil ik optellen bij elkaar. Dus probeer eerst dit ene resultaat bij zichzelf op te tellen.
Ik heb wat dingen geprobeerd maar krijg dan 793 793 te zien ipv 1586.
Heb nu onderstaand maar krijg geen waarde te zien.
var num1 = $("#besparing").val();
var num2 = $("#besparing").val();
var uitkomst = parseInt(num1) + parseInt(num2);
alert(uitkomst);
$("#uitkomst").val(uitkomst);
Maar val() is voornamelijk bedoeld om formulierwaarden uit te lezen en terug te plaatsen.
Als je de (HTML-)inhoud van een element wilt aanpassen/vervangen dan moet je waarschijnlijk html() gebruiken.
Je hebt gelijk. Dat heb ik nu ook en het werkt. Ik wil daarbij ook de indexwaarde uitlezen en het lijkt erop of me dat gelukt is met onderstaande code. Vraag me alleen af of het wel helemaal correct is en of dat zo mag. Heb dezelfde code gebruikt als bij isolatie_calc en deze in een nieuw bestand gezet en indexwaarde_calc genoemd. Hier haal ik dan de indexwaarde uit de database afhankelijk van het id.
Ik zou het rekenen naar de PHP-kant halen en alles gewoon kant-en-klaar aanleveren.
Realiseer je ook goed het volgende: normaal gesproken ziet een programma er als volgt uit:
A
B
C
D
B wordt pas uitgevoerd nadat A klaar is, C na B en D na C in een normaal, lineair geprogrammeerd programma.
Zo ook bij een AJAX-call, maar niet helemaal. Deze wordt gestart, maar vervolgens loopt het programma verder, dus daarna wordt de tweede AJAX-call gestart, maar mogelijk is de eerste dan dus nog niet klaar. Het is dus absoluut niet gegarandeerd dat AJAX-call #1 is afgerond voordat AJAX-call #2 begint.
Als de ene call informatie nodig heeft uit de andere ben je beter af met het doen van een tweede call in het success-deel van de eerste call indien call #2 informatie nodig heeft uit call #1. Of dus nog veel makkelijker, combineer dit alles en doe gewoon één call naar één PHP-script die alles voor je uitrekent, dat lijkt mij stukken eenvoudiger dan wat je nu aan het doen bent.
Waarschijnlijk ook bedoeld als voorbeeld maar "answer" doet nu gewoon 2x de waarde van "resultaat" en dit kan dus ook aan de serverkant plaatsvinden, ik zou de clientzijde (AJAX, JavaScript etc.) voor weergave gebruiken, en de serverzijde het rekenwerk laten doen in PHP.
Dus ja, de bovenstaande constructie (twee AJAX-calls in serie) is in zekere zin ongewoon en het is dus ook heel erg belangrijk dat je de mogelijke implicaties van zo'n (wat mij betreft ongewenste) constructie begrijpt.
EDIT en dat dit dus ongewenste gevolgen kan hebben als de ene call af en toe sneller klaar is dan de andere.