ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Реализация покупательской тележки

Реализация покупательской тележки

Функциональность покупательской тележки тесно связана с переменной сеанса cart. Она представляет собой ассоциативный массив, в котором ключами служат номера ISBN книг, а значениями — заказанное количество книг. Например, если в тележку помещается один экземпляр данной книги, в массиве появляется следующая запись:

0101X => 1

Приведенная запись означает один экземпляр книги с номером ISBN 0101X. Когда книги помещаются в тележку, в массив добавляются элементы подобного рода. Во время просмотра содержимого тележки мы будем использовать массив cart для поиска в базе данных полной информации по книгам.

Кроме того, используются еще две переменные сеанса для управления отображением в заголовке данных по количеству элементов (Total Items) и сумме заказа (Total Price) — соответственно, items и total_price.

Использование сценария show_cart.php

Обзор реализации покупательской тележки мы начнем со сценария show_cart.php. Он выводит страницу, которая открывается после щелчка на кнопках Добавить в корзину или Посмотреть корзину. Если сценарий show_cart.php вызывается без параметров, содержимое тележки отображаться не будет. Если в качестве параметра передается какой-то номер ISBN, книга, соответствующая этому номеру ISBN, добавляется в тележку. Кнопка Посмотреть корзину появляется только в том случае, если там уже находится товар.

На рисунке внизу мы выбрали книгу.

Сценарий show_book.php позволяющий выбрать книгу и отправить ее в покупательскую тележку

Щелкнув по кнопке Добавить в корзину, мы попадем на страницу сгенерированную сценарием show_cart.php.

Сценарий show_cart.php сгенерировавший страницу после добавления книги в покупательскую тележку

Если вы наведете курсор на на название книги помещенной в покупательскую тележку, и внимательно посмотрите на адресную строку, то увидите , что сценарий вызывается параметром new и имеет значение 0101, то есть номер ISBN книги, только что помещенной в тележку

Сценарий show_cart.php сгенерировавший страницу после добавления книги в покупательскую тележку

На этой странице находится еще две опции. Первую из них, кнопку Сохранить изменения, можно использовать для изменения количества элементов в тележке. Для этого следует непосредственно изменить количество экземпляров в полях количества и щелкнуть по кнопке Сохранить изменения. По сути дела, это кнопка отправки формы, которая обеспечивает возврат в сценарий show_cart.php с целью обновления содержимого тележки.

Вторая опция, кнопка Перейти в кассу, служит для окончательного расчета, и выбирается посетителем для завершения покупки и выхода из магазина. Мы вернемся к ней немного позже.

show_cart.php — сценарий управления покупательской тележкой

<?php
require ('book_sc_fns.php');
// Для покупательской тележки необходимо запустить сеанс
session_start();

@ $new = $_GET['new'];

if($new)
{
// Выбран новый элемент
if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
$_SESSION['items'] = 0;
$_SESSION['total_price'] ='0.00';
}
if(isset($_SESSION['cart'][$new]))
$_SESSION['cart'][$new]++;
else
$_SESSION['cart'][$new] = 1;
$_SESSION['total_price'] = calculate_price($_SESSION['cart']);
$_SESSION['items'] = calculate_items($_SESSION['cart']);

}
if(isset($_POST['save']))
{
foreach ($_SESSION['cart'] as $isbn => $qty)
{
if($_POST[$isbn]=='0')
unset($_SESSION['cart'][$isbn]);
else
$_SESSION['cart'][$isbn] = $_POST[$isbn];
}
$_SESSION['total_price'] = calculate_price($_SESSION['cart']);
$_SESSION['items'] = calculate_items($_SESSION['cart']);
}
$pagename = "Ваша тележка";;
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Категория книг</h5>";
echo "</header>";
echo "<nav>";
// Извлечь категории из базы данных
$cat_array = get_categories();
display_categories($cat_array);
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<article>";
if($_SESSION['cart']&&array_count_values($_SESSION['cart']))
display_cart($_SESSION['cart']);
else
{
echo '<p>Ваша тележка пуста</p>';

}
$target = 'index.php';

// Если в тележку был только что добавлен новый элемент,
// продолжить покупки товаров данной категории
if($new)
{
$details = get_book_details($new);
if($details['catid'])
$target = 'show_cat.php?catid='.$details['catid'];
}
display_button($target, 'continue-shopping', 'Продолжить покупки');

// Используйте это, только если настроено SSL-соединение
// $path = $_SERVER['PHP_SELF'];
// $server = $_SERVER['SERVER_NAME'];
// $path = str_replace('show_cart.php', '', $path);
// display_button('https://'.$server.$path.'checkout.php',
// 'go-to-checkout', 'Окончательный расчет');

// Используйте это, если SSL-соединение не установлено
display_button('checkout.php', 'go-to-checkout', 'Окончательный расчет');
echo "</article>";
echo "</div>";
echo"</section>";
do_html_footer();
?>

Этот сценарий состоит из трех основных частей: вывод содержимого тележки, добавление в нее элементов и сохранение изменений. Все части по порядку рассматриваются далее.