When you submit a form, two items must change in the cart ext. price and quantity (# korzina_2, # korzina_3). The form:
<form method="get" action="{PATH}product/{HREF}"> <div class="select_block"><b>Цвета</b> <select name="color" class="count"> {COLOR} </select> </div><br><!-- ENDIF --><!-- IF !COLOR --><div><input type="hidden" name="color" value=""></div><!-- ENDIF --> <div class="select_block"><b>Количество</b> <select name="num" class="count"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </div> <div><input type="hidden" name="id" value="{HREF}"></div> <!--name="popupmess"--> <div style="position: absolute;"> <div style="display: inline-block; padding-top: 20px; padding-left: 2px;"> <input type="button" value="Добавить в корзину" class="super button green" style="font-size: 1em;" onClick="addprice(this.form);"/></div> </form> The addprice () function knocks out an alert('вышло Внутри'); :
function update_k_num() { $.ajax({ url: "/index.php?action=k_num", cache: false, success: function(html){ $("#korzina_2").html(html); } }); } function update_k_price() { $.ajax({ url: "/index.php?action=k_price", cache: false, success: function(html){ $("#korzina_3").html(html); } }); } function addprice(form) { var link = "/index.php?action=pradd&id="+form.id.value+"&num="+form.num.value+"&color="+form.color.value; var cont = document.getElementById('prod_cont'); var loading = document.getElementById('loading'); cont.innerHTML = loading.innerHTML; var http = createRequestObject(); if( http ) { http.open('get', link); http.onreadystatechange = function () { if(http.readyState == 4) { cont.innerHTML = http.responseText; alert('вышло Внутри'); } }; http.send(null); update_k_num(); update_k_price(); } else { alert('Не вышло'); document.location = link; } } Php handler:
if($_GET['action'] == 'pradd') { if(!empty($_GET['id']) && !empty($_GET['num'])) { $db->conn_open(); $id = $common->req_var('id'); $num = $common->req_var('num'); if($num <= '10') { $result = $db->q("SELECT * FROM `vedma_product` WHERE `id` = '".$id."'"); $numrows = $db->n($result); if($numrows > 0) { $row = mysql_fetch_array($result); $ses = session_id(); $resultp = $db->q("SELECT * FROM `vedma_price` WHERE `ses_id` = '".$ses."' AND `stat` = '0'"); $numrowsp = $db->n($resultp); if($numrowsp > 0) { $rowp = mysql_fetch_array($resultp); $price_id = $rowp['id']; } else { $sql = "INSERT INTO `vedma_price` VALUES(NULL, '".$ses."', '0', '', '', '', NOW())"; mysql_query($sql); $resultp2 = $db->q("SELECT * FROM `vedma_price` WHERE `ses_id` = '".$ses."' AND `stat` = '0'"); $rowp = mysql_fetch_array($resultp2); $price_id = $rowp['id']; } if(empty($_GET['color']) && empty($row['color'])) { $resultpa = $db->q("SELECT * FROM `vedma_price_all` WHERE `price_id` = '".$price_id."' AND `product_id` = '".$id."'"); $numrowspa = $db->n($resultpa); if($numrowspa > 0) { $rowpa = mysql_fetch_array($resultpa); $num2 = $rowpa['num'] + $num; $sql2 = "UPDATE `vedma_price_all` SET `num` = '".$num2."' WHERE `id` = '".$rowpa['id']."'"; } else { $sql2 = "INSERT INTO `vedma_price_all` VALUES(NULL, '".$price_id."', '".$id."', '".$num."', '')"; } if(mysql_query($sql2)) { echo messbox("Товар успешно добавлен в корзину!", "not"); } else { echo messbox("Ошибка при добавлении!", "err"); } } else { if(empty($_GET['color']) && !empty($row['color'])) { echo messbox("Выберите цвет товара!", "err"); } if(!empty($_GET['color']) && !empty($row['color'])) { $color = $common->req_var('color'); $array_color = explode(" ", $row['color']); $num_color = count($array_color); for($i=0; $i<$num_color; $i++) { if($array_color[$i] == $color) { $color_i = "1"; } } if(!empty($color_i)) { $resultpa = $db->q("SELECT * FROM `vedma_price_all` WHERE `price_id` = '".$price_id."' AND `product_id` = '".$id."' AND `color` = '".$color."'"); $numrowspa = $db->n($resultpa); if($numrowspa > 0) { $rowpa = mysql_fetch_array($resultpa); $num2 = $rowpa['num'] + $num; $sql2 = "UPDATE `vedma_price_all` SET `num` = '".$num2."' WHERE `id` = '".$rowpa['id']."'"; } else { $sql2 = "INSERT INTO `vedma_price_all` VALUES(NULL, '".$price_id."', '".$id."', '".$num."', '".$color."')"; } if(mysql_query($sql2)) { echo messbox("Товар успешно добавлен в корзину!", "not"); } else { echo messbox("Ошибка при добавлении!", "err"); } } else { echo messbox("Такого цвета у товара нет!", "err"); } } } } else { echo messbox("Такого товара не существует!", "err"); } } else { echo messbox("Слишком большое число!", "err"); } $db->conn_close(); } } if($_GET['action'] == 'k_num') { $db->conn_open(); echo "<center>всего товаров ".korzina("num", $ses)." ед.</center>"; $db->conn_close(); } if($_GET['action'] == 'k_price') { $db->conn_open(); echo "<center>сумма ".korzina("price", $ses)." руб.</center>"; $db->conn_close(); } Beats out that everything is good: echo messbox("Товар успешно добавлен в корзину!", "not"); GET request is correct, but the basket is still not updated, the session is not empty. What could be the problem, help debug this code. Or at least at what stage, fails. Possible mistakes. Can changes in .htaccess affect this problem?