Tak wygląda kod odpowiedzialny za wysyłanie danych do pliku php. Jak widać dopeiro po zakończeniu wysyłania danych do pliku wywoływana jest funkcja odświeżająca koszyk.
function add_cart(id){
var qty = document.getElementById('pro_'+id);
if(qty.value == 0){
qty.value = 1;
}
var tr = document.getElementById('pro_tr_'+id);
tr.className = 'incart';
var showDiv = document.getElementById('cart');
xmlHttp = getHTTPObject();
if (xmlHttp != null) {
var url = "req.php?id="+id+"&qty="+qty.value;
var params = "";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState==4){
resp = xmlHttp.responseText;
showDiv.innerHTML = resp;
} else {
showDiv.innerHTML = '';
}
}
xmlHttp.send(params);
}
update_cart_box();
}
function update_cart_box(){
var cart_box = document.getElementById('shopping_cart_box');
cart_box.innerHTML = '';
xmlHttp = getHTTPObject();
if (xmlHttp != null) {
var url = "req.php?action=update_box_cart";
var params = "";
xmlHttp.open("GET",url,true);
xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=utf-8");
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState==4){
resp = xmlHttp.responseText;
if(cart_box.innerHTML.lenght > 0) cart_box.innerHTML = '';
cart_box.innerHTML = resp;
} else {
cart_box.innerHTML = 'Proszę czekać...';
}
}
xmlHttp.send(params);
}
}
Sesje sprawdzałem - używane są te same (nie ma błędu połączenia w sesjach).
Problem rozwiązany
Zmieniłem sposób wysyłania danych do pliku.php i działa jak należy.
function add_cart(id){
var qty = document.getElementById('pro_'+id);
if(qty.value == 0){
qty.value = 1;
}
var tr = document.getElementById('pro_tr_'+id);
tr.className = 'incart';
xmlHttp = getHTTPObject();
if (xmlHttp != null) {
alert(id);
var url = "req.php?action=add_cart";
var params = "products_id="+id;
params += "&cart_quantity="+qty.value;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState==4){
update_cart_box();
} else {
//showDiv.innerHTML = 'Proszę czekać...';
}
}
xmlHttp.send(params);
}
//update_cart_box();
}