Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Корзина для магазина 
:(
    Опции темы
americanets
Дата 4.5.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



Feldmarschall, это код kyc0k,  только поправлен чтоб все печатал а не только последнее smile


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
americanets
Дата 4.5.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



Код

$name = array();
$name[1] = 'Товар 1';
$name[2] = 'Товар 2';
$name[3] = 'Товар 3';
$name[4] = 'Товар 4';
$name[5] = 'Товар 5';
$name[6] = 'Товар 6';
$name[7] = 'Товар 7';
$name[8] = 'Товар 8';

function AddToList($Id){

  if (isset($_SESSION['tovar'][$Id])) {


      $_SESSION['tovar'][$Id]++;

    }


  else {


      $_SESSION['tovar'][$Id] = 1;


    }

}

if(!empty($_POST)){

  AddToList($_POST['id']);

}

while (list($key, $val) = each ($_SESSION['tovar'])) {

        print $name[$key].' - '.$val.' шт<br/>';

        
}

//print_r($_SESSION['tovar']);

//print_r(array_keys($_SESSION['tovar'][]));
ob_end_flush();
?>


<form name="q" method="POST">
<input type=text name=id>

<input type=submit>
</form> 





Это сообщение отредактировал(а) americanets - 4.5.2008, 17:29


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Feldmarschall
Дата 4.5.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



americanets, нафига такие сложности?
Парень в двух-то строчках умудряется сделать три ошибки, а ты ему целую библиотеку накатал.
Чтобы понять принцип, кода должно быть как можно меньше.
PM   Вверх
americanets
Дата 4.5.2008, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



Удалять товар

Код

unset($_SESSION['tovar'][$Id]);


Добавлено @ 17:26
Feldmarschall, а он и меньше , но поясню

Тут функция добавить по Id , делает сессию id товара и его количество
Код

function AddToList($Id){
  if (isset($_SESSION['tovar'][$Id])) {

      $_SESSION['tovar'][$Id]++;

    }

  else {

      $_SESSION['tovar'][$Id] = 1;

    }
}


активируем функцию если POST есть , на будущее для empty 0 - это не есть
Код

if(!empty($_POST)){
  AddToList($_POST['id']);
}


тут мы печатаем то что есть в сессии $key это Id $val количество 
$name это массив с данными
можно сделать массив с ценой и прочим, если работать с базой то массив всегда готов
Код

while (list($key, $val) = each ($_SESSION['tovar'])) {
        print $name[$key].' - '.$val.' шт<br/>';  
}






Это сообщение отредактировал(а) americanets - 4.5.2008, 17:28


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
kyc0k
Дата 5.5.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Всем кто помогал спасибо!
Вроде получается прям, то что нужно smile .
Вроде только осталось всего два вопроса, как сделать отдельную кнопку удалить для каждого товара, ну и подсчет общей суммы всех товаров.
Кнопка "Удалить товар" у меня работает, но только удаляет после второго нажатия и сразу весь товар, чему я не удивлен т.к. она уничтожает сессию. unset($_SESSION['tovar'][$Id]), вот это как прикрутить??
 А вот с общей суммой товара вообще труба какаято!
Получается что то такое:
Код

<?
session_start();
$name = array();
$name[1] = 'Утюг';
$name[2] = 'Чемодан';
$name[3] = 'Чехол';
$name[4] = 'Тяпка';

function AddToList($Id){
  if (isset($_SESSION['tovar'][$Id])) {
     // $_SESSION['tovar'][$Id]++;
     $many=$_POST['nam']*$_POST['many'];
    $_SESSION['tovar'][$Id]=$_POST['nam'].'..шт......цена:'.$many;
    
    }
  else {
  $many=$_POST['nam']*$_POST['many'];
      $_SESSION['tovar'][$Id] = $_POST['nam'].'..шт......цена:'.$many;
    }
}

if(!empty($_POST)){
  AddToList($_POST['id']);
}

while (list($key, $val) = each ($_SESSION['tovar'])) {
        print $name[$key].' - '.$val.' рублей<br/>';
        
}
//print_r($_SESSION['tovar']);
//print_r(array_keys($_SESSION['tovar'][]));
ob_end_flush();

echo ""."<form method='post'><input type='submit' name='del' value='очистить'></form>";
if (!empty($_POST['del'])){
session_destroy();
}
?>

а вот форма
Код

<table border="1">
<tr>
<td>
<form name="q" method="POST">

<font>Утюг цена 100 руб.</font>
<input type="text" name="nam" value="">
<input type="hidden" name="id" value="1">
<input type="hidden" name="many" value="100">
<input type ="submit" value ="Положить"><br>
</form>

    </td>
    <td>
<form name="w" method="POST">
<font>Чемодан цена 120 руб</font>
<input type="text" name="nam" value="">
<input type="hidden" name="id" value="2">
<input type="hidden" name="many" value="120">
<input type ="submit" value ="Положить"><br>
</form>

        </td>
        </tr>
        <tr>
        <td>
<form name="e" method="POST">
<font>Чехол цена 70 руб</font>
<input type="text" name="nam" value="">
<input type="hidden" name="id" value="3">
<input type="hidden" name="many" value="70">
<input type ="submit" value ="Положить"><br>
</form> 
            </td>
            <td>
<form name="r" method="POST">
<font>Тяпка цена 70 руб</font>
<input type="text" name="nam" value="">
<input type="hidden" name="id" value="4">
<input type="hidden" name="many" value="70">
<input type ="submit" value ="Положить"><br>
</form> 
            </td>
                </tr>
</table>
<br><a href="page2.php">В корзину</a>


Это сообщение отредактировал(а) kyc0k - 5.5.2008, 13:33
PM MAIL   Вверх
americanets
Дата 5.5.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



кнопка удалить

Код

<a href="?delete=тутId">Удалить товар</a>


Код

if(isset($_GET['delete']){

unset($_SESSION['tovar'][intval($_GET['delete'])]);

}



Общая сумма 

Делаешь массив price соответственно товарам

Код

$price = array();
$price[1] = 25;

... 


потом считаешь все

Код

$allprice = 0;

while (list($key, $val) = each ($_SESSION['tovar'])) {

   print $name[$key].' - '.$val.' шт'.$price[$key].' за шт<br/>';  

   $allprice = $allprice+$price[$key]*$val;
}

echo $allprice;


Добавлено через 3 минуты
кнопки уменьшить и увеличить количество 

Код

$_SESSION['tovar'][intval($_GET['Id'])]--;
$_SESSION['tovar'][intval($_GET['Id'])]++;

соответственно


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Feldmarschall
Дата 5.5.2008, 14:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



kyc0k, скажи, а зачем тебе эта корзина? Это какая-то лабораторная, которую надо сдать и забыть? 
Обращался бы сразу в центр помощи.
Ведь от такой корзины, которую за тебя написал амераканский империализм, и в которой ты самостоятельно не можешь изменить ни сточки, поскольку ни одной строчки не понимаешь - пользы никакой.
PM   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.