Hi there, ik heb een probleem met een AJAX post request waarvan ik niet meer weet wat ik nog kan proberen.
Het gaat om het updaten van een winkelmandje, hiervoor post ik via AJAX een aantal values naar een pagina op dezelfde subdomain.
Mijn code voor het opslaan van de sessie
Mijn html icm javascript:
In de form heb ik 'ajax' als hidden input gedaan zodat ik het ook even kon testen als ik zelf de request stuur via de browser ipv javscript. die hoort er natuurlijk normaal niet in
Oke het probleem:
Mijn php script slaat de sessie niet op als ik via AJAX het product in de winkelwagen wil zetten. Als ik javascript uitzet, en dus zelf de request uitvoer via de browser als het ware, lukt dit wel.
Mijn AJAX request geeft in een alert wel gewoon de waarde van $_SESSION['cart'] maar wordt niet opgeslagen. Terwijl als ik een directe request doe vanuit de browser de sessies wel opgeslagen worden.
Ik kom er niet meer uit, blijkbaar gaat er iets niet helemaal goed met de ajax post, maar wat? Kan iemand mij helpen of weet iemand een oplossing? Alvast enorm bedankt voor het meedenken,
Het gaat om het updaten van een winkelmandje, hiervoor post ik via AJAX een aantal values naar een pagina op dezelfde subdomain.
Mijn code voor het opslaan van de sessie
PHP:
1
2
3
4
5
6
7
| $_SESSION['cart'] = 'winkelmandje inhoud'; if( isset($_POST['ajax']) ) { session_write_close(); debug($_SESSION['cart']); //die() icm print_r() functie } |
Mijn html icm javascript:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| <form method="post" action="url.xx/winkelmandje/toevoegen"> <input type="hidden" name="product_id" id="product_id" value="23" /> <input type="text" name="qty" id="qty" value="1" maxlength="2" style="width:30px;" class="text" /> <input type="submit" name="submit" id="btn_addtocart" value="Plaats in winkelmandje" class="button-blue" /> <input type="hidden" name="ajax" value="1" id="ajax" /> </form> <script> $("#btn_addtocart").click(function() { var post_data = { product_id: $("#product_id").val(), qty: $("#qty").val(), submit: true, ajax: true } $.ajax( { type: "POST", url: url + 'winkelmandje/toevoegen', data: post_data, success: function(data) { alert(data) //ik krijg dus wel gewoon de inhoud van mijn $_SESSION['cart'] } }); return false; }); </script> |
In de form heb ik 'ajax' als hidden input gedaan zodat ik het ook even kon testen als ik zelf de request stuur via de browser ipv javscript. die hoort er natuurlijk normaal niet in
Oke het probleem:
Mijn php script slaat de sessie niet op als ik via AJAX het product in de winkelwagen wil zetten. Als ik javascript uitzet, en dus zelf de request uitvoer via de browser als het ware, lukt dit wel.
Mijn AJAX request geeft in een alert wel gewoon de waarde van $_SESSION['cart'] maar wordt niet opgeslagen. Terwijl als ik een directe request doe vanuit de browser de sessies wel opgeslagen worden.
Ik kom er niet meer uit, blijkbaar gaat er iets niet helemaal goed met de ajax post, maar wat? Kan iemand mij helpen of weet iemand een oplossing? Alvast enorm bedankt voor het meedenken,