Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Еще раз со своей измучанной проблемой... переделал код js как вы сказали:
$('document').ready(function(){ function addtoCart(itemId){ console.log("js-addToCart()"); $.ajax({ type: 'POST', async: false, url:"../send/"+itemId+'/', succes: function(data){ window.location.href = url?page=cart; } }); } }); Все равно зависает на странице add_to_cart... подскажите как переделать функцию php: function add_to_cart($id){ $id = $_GET['id']; if(isset($_SESSION['cart'][$id])){ $_SESSION['cart'][$id]++; return true; } else{ $_SESSION['cart'][$id] = 1; return true; } return Чтоб удалить из кода SWITCH... |
Вообще удалил код js... и все равно зависаю в add_to cart
|
Цитата:
"window.location.href" говорит браузеру, что нужно открыть в этой вкладке страничку с другим адресом. Вместо "url?page=cart" вы должны были написать адрес странички, на которую пользователя нужно перенаправить. В итоге должно было получиться: window.location.href='/index.php?page=cart'; |
А причем add_to_cart при переходе или "зависает" при добавлении товара? Вы в отладчик заглядывали или до сих пор нет, что отвечает сервер?
В общем-то если при асинхронном добавлении товара после него делается переход, то выбрасывайте Ajax из добавления товара, толку то от него при этом никакого. Вместо этого кнопки добавления товара, это копки submit одной формы, отправляемой методом POST, значениями которых должны быть ID товаров, а именами ключ ожидаемый на сервере. Атрибут action формы можно сделать равным адресу корзины, куда и требуется перейти, то есть это позволит исключить лишнее перенаправление, а скрипт принимающий товары сделать на этой странице подключаемый. |
Я думаю проблема не js, а в switch....
подскажите как изменить функции по обработки корзины: function add_to_cart($id){ $id = $_GET['id']; if(isset($_SESSION['cart'][$id])){ $_SESSION['cart'][$id]++; return true; } else{ $_SESSION['cart'][$id] = 1; return true; } return false; } function db_result_array($result){ $res_array = array(); $count = 0; while($row = mysql_fetch_array($result)){ $res_array[$count] = $row; $count++; } return $res_array; } function get_product($id){ $query = " SELECT * FROM `product` WHERE `id` = '$id'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); return $row; } function update_cart(){ foreach($_SESSION['cart'] as $id => $qty){ if($_POST[$id] == '0'){ unset($_SESSION['cart'][$id]); } else { $_SESSION['cart'][$id] = $_POST[$id]; } } } function total_items($cart){ $num_items = 0; if(is_array($cart)){ foreach($cart as $id => $qty){ $num_items = $num_items + $qty; } } return $num_items; } function total_price($cart){ $total_price = 0; if(is_array($cart)){ foreach($cart as $id => $qty){ $query = "SELECT cena FROM product WHERE id = '$id'"; $result = mysql_query($query); if($result){ $item_price = mysql_result($result, 0, 'cena'); $total_price = $total_price + $item_price * $qty; } } } return $total_price; } Чтоб удалить из кода в этот swith: switch($page){ case('add_to_cart'): $id = $_GET['id']; $add_item = add_to_cart($id); $_SESSION['total_items'] = total_items($_SESSION['cart']); $_SESSION['total_price'] = total_price($_SESSION['cart']); header('Location:/?page=cart'); break; case('update_cart'): update_cart(); $_SESSION['total_items'] = total_items($_SESSION['cart']); $_SESSION['total_price'] = total_price($_SESSION['cart']); header('Location:/?page=cart'); } |
вот так переделал:
$('document').ready(function(){ function addtoCart(itemId){ window.location.href='/index.php?page=cart'; } }); после перехода по ссылке /add_to_cart&id=666 - не перенаправляет |
Цитата:
В switch на 80% одно и тоже, не нравится он, применяйте if...else, где для разного ключа страницы описать свои действия, общие после условия. |
Часовой пояс GMT +3, время: 21:53. |