Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Добавление товара в корзину, без перезагрузки страницы
 
 автор: tAleks   (04.08.2011 в 21:32)   письмо автору
 
 

Хочу сделать так, чтобы по нажатию на кнопку "В корзину", товар добавлялся в корзину, т.е. делалась запись в сессию, и при этом страница не перезагружалась. На сколько мне известно, то реализовать такое можно с помощью JS. Но в JS я вообще никак не разбираюсь. Может есть какой-нибудь простенький скрипт, с помощью которого можно реализовать данную задачу?

Кто занает, подскажите плиз.

  Ответить  
 
 автор: АЯ   (04.08.2011 в 21:47)   письмо автору
 
   для: tAleks   (04.08.2011 в 21:32)
 

Хочу написать маленькую поэмку на японском языке.
Но в японском языке я вообще никак не разбираюсь. Может есть какой-нить простенький способ писать стихи на японском, не зная языка?

Кто знает, подскажите плиз.

  Ответить  
 
 автор: cheops   (04.08.2011 в 21:57)   письмо автору
 
   для: tAleks   (04.08.2011 в 21:32)
 

Можно, если вы готовы использовать jQuery для решения этой задачи. Недостатки этого решения несколько язвительно описаны выше, если перевести их на русский, то будет это будет звучать примерно так "либо нужно знать JavaScript (кода довольно много для одного ответа), либо cheops вам предложит готовое, компактное и понятное решение, которое утяжелит вашу страницу на 50Кб (столько весит jQuery)".

  Ответить  
 
 автор: f111   (04.08.2011 в 22:20)   письмо автору
 
   для: cheops   (04.08.2011 в 21:57)
 

jQuery это не JavaScript?

  Ответить  
 
 автор: cheops   (05.08.2011 в 09:44)   письмо автору
 
   для: f111   (04.08.2011 в 22:20)
 

Это бибиотека JavaScript, с её помощью получаются компактные решения. Если tAlex подойдет решение на jQuery, оно может выглядеть так. Пусть имеется PHP-обработчик вида
<?php 
  error_reporting
(E_ALL & ~E_NOTICE); 
  
session_start();
  
// Регистрируем товар
  
if(is_array($_SESSION['arr']))
  {
    if(!
in_array($_GET['id'], $_SESSION['arr'], true))
    {
      
$_SESSION['arr'][] = $_GET['id'];
    }
  }
  else 
$_SESSION['arr'][] = $_GET['id'];
  
// Выводим результат
  
echo "<pre>"
  
print_r($_SESSION); 
  echo 
"<pre>"
?>

К нему нужно обратиться без перезагрузки страницы, для этого подойдет следующий jQuery-код
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>В корзину</title>
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
  // Назначение обработчиков после загрузки
  // документа
  $(document).ready(function(){
    // Назначение события onClick ссылкам
    // с классом basket
    $(".basket").click(function(){
      // Формируем URL-запрос
      var url = 'handler.php?id=' + $(this).attr('id');
      url = encodeURI(url);
      // Осуществляем AJAX-запрос
      $("#id_basket_conent").load(url);
      return false;
    });
  });

  // Add .last class to certain lists
  $(document).ready(function(){
      $("ul.lst li:last, ul.press li:last").addClass("last");
      });
</script>
</head>
<body>
  <div><a href='#' class='basket' id='id3432'>В корзину</a></div>
  <div><a href='#' class='basket' id='id1234'>В корзину</a></div>
  <div id='id_basket_conent'></div>
</body>
</html>
Демонстрационный код и так получается довольно объемный, на чистом JavaScript он будет еще больше. Не думаю, что кто-то возьмется, так как это потребует довольно много времени. В рамках форума проще и быстрее создать код на jQuery. Если у кого-то возникнет желание, его всегда можно преобразовать в нативный JavaScript.

  Ответить  
 
 автор: kireyev   (05.08.2011 в 10:33)   письмо автору
 
   для: tAleks   (04.08.2011 в 21:32)
 

Попробую ответить.
Например ссылка, которая добавляет в корзину:
<a href="#" onclick="to_cart(<? echo $id.",".$user_id?>)"><? echo $name?></a>

В этом же документе надо в head написать обработчик:

<script type="text/javascript" src="/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
function to_cart(id, user_id) {
$.post('/in_cart.php',{id:id, user_id:user_id},function(data){ //передаем данные о товаре и пользователе в обработчик
$('#basket_quantity').html(data); //тут изменяем кол-во товаров в корзине на текущей странице
alert("Товар добавлен в корзину."); //выводим сообщение о том, что товар добавлен в корзину
});
}
</script>

.. и самое вкусное - обработчик in_cart.php:

$id = str_replace('"','',json_encode ($_POST['id'])); //получаем в обработчик номер товара
$user_id = str_replace('"','',json_encode ($_POST['user_id'])); //получаем в обработчик user_id
ну и заносим в базу данных например данные о товаре, положенном в коризну

в этом же обработчике заносим все в БД и не забываем написать в конце:
echo $quantity_in_cart;
//выводим сообщение о количестве товаров в корзине

Примерно так. Сам недавно делал.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования