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

Форум PHP

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

 

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

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

тема: Помогите с корзиной!
 
 автор: SMAlik   (25.01.2005 в 14:07)   письмо автору
 
 

Ни как не могу написать корзину. Тоесть у меня выводиться товар и есть поля где необходимо ввести количество. По умолчанию 1. Я не могу обработать эти поля. Не могу вытащить из них количество по каждому товару. Помогите!!!

   
 
 автор: cheops   (25.01.2005 в 14:15)   письмо автору
 
   для: SMAlik   (25.01.2005 в 14:07)
 

Без кода сложно помочь, где вы храните информацию о выбранных товарах? В базе данных или сессиях? Почему вы не можете обработать поля с количеством товара?

   
 
 автор: SMAlik   (25.01.2005 в 14:22)   письмо автору
 
   для: cheops   (25.01.2005 в 14:15)
 

Я данные, которые должны быть в корзине получаю из предидущей формы (ключевой код - артикул товара). Все данные храняться в текстовых файлах. Передаю данные в сессии. На этой странице открываю файл и считываю данные в массив. Потом сравниваю по ключю и вывожу в таблицу. Всё. Надеюсь этого достаточно!

<?
Error_Reporting
(E_ALL & ~E_NOTICE);
session_start();
?>

<LINK
href="styles.css" type=text/css rel=stylesheet>
<TABLE cellSpacing=1 cellPadding=2 width="100%" border=0>
              <TBODY>
<?


print "<form action='korz.phtml' method=post>";
if( isset( 
$_POST['add'] ) )
{ echo 
"Raschitat";
/* Редактирование */  }
if( isset( 
$_POST['delete'] ) )
{ echo 
"Delete";
/* Удаление */  }
$tovar file($file);
print  
"<TR><TH class=header colspan=7>Ваша корзина</TH></TR>";
print 
"<TR>
            <TH class=cataloglistheader align=middle width=50>Код товара</TH>
                <TH class=cataloglistheader>картинка</TH>
                <TH class=cataloglistheader width=90%>Наименование</TH>
                <TH class=cataloglistheader align=middle>Цена</TH>
                <TH class=cataloglistheader align=middle>Количество</TH>
                <TH class=cataloglistheader align=middle width=30>ед</TH>
                <TH class=cataloglistheader align=middle width=10>Удал.</TH>
                </TR>"
;
$w=0;
$countn=count($numk);
$numk=array_unique($numk);
$t=0;$i=0;
while (
$w<$countn):
$korz[$w]=$tcol;
list(
$n_1$n_2$n_3$n_4$pic) = explode("\t"$numk[$w]);
if (
$n_1==""){}
else{
print 
"        <TR>
                <TD class=cataloglist align=middle width=50>
$n_1</TD>
                <TD class=cataloglist ><img border=0 src=im/
$pic></TD>
                <TD class=cataloglist align=left>
$n_2</TD>
                <TD class=cataloglist align=middle >
$n_3</TD>
                <TD class=cataloglist align=middle><input type=text  name=tcol size=10 maxlength=6 value=
$kol></TD>
        <TD class=cataloglist align=middle width=30>
$n_4</TD>
                <TD class=cataloglist align=middle><input type=checkbox name=del[
$i] value=$t$n_1></TD>
        </TR>"
;
}

$w++;


list(
$s_1$s_2) = explode(","$n_3);
$r+=$s_1;
$k+=$s_2;
print(
$korz[$w]);
endwhile;
$l=strlen($k);
$l=$l-2;
if (
$k>100){
$tr=substr("$k",0,$l);
$tk=substr("$k",-2);
$r+=$tr;
$k=$tk;
}
session_register("korz");

print 
"<tr><TH class=header colspan=7>Итого: $r рублей $k копеек.</TH></tr>";

print 
"<td colspan=3></td>";
print 
"<td colspan=4 align=right><input type=submit name=add value='Расчитать'>
<input type=submit name=delete value='Удалить из корзины'></form></td>"
;

?>


</TBODY>
</TABLE>

   
 
 автор: XPraptor   (25.01.2005 в 14:23)   письмо автору
 
   для: SMAlik   (25.01.2005 в 14:07)
 

Поля количества для каждого товара нужно называть одинаково с квадратными скобками. Например:
<INPUT type="text" name="counttvr[1]" value="1">
<INPUT type="text" name="counttvr[2]" value="1">
тогда при методе POST будет передан массив $_POST["counttvr"]
который можно просмотреть
foreach($_POST["counttvr"] as $key=>$val)
{
//здесь $cont_tvr это твой массив количеств товаров с индексом $key
$cont_tvr[$key]=$val;
}

   
 
 автор: SMAlik   (25.01.2005 в 14:24)   письмо автору
 
   для: XPraptor   (25.01.2005 в 14:23)
 

Спасибо, увидел ошибку, что поля имеют одно имя. Какие ещё будут советы и предложения?

   
 
 автор: XPraptor   (25.01.2005 в 14:31)   письмо автору
 
   для: SMAlik   (25.01.2005 в 14:24)
 

А какие тебе еще нужны предложения? Получай свой товар и обрабатывай.

   
 
 автор: SMAlik   (25.01.2005 в 14:49)   письмо автору
 
   для: XPraptor   (25.01.2005 в 14:31)
 

А как "запихивать" эти полученные числа в текстовые поля, т.к при нажатии на кнопку всё становиться по 1-ам. Чтобы отображались в текстовых полях введённые данные?

   
 
 автор: XPraptor   (25.01.2005 в 14:57)   письмо автору
 
   для: SMAlik   (25.01.2005 в 14:49)
 

А, теперь ясно :-)
Ты должен в свойстве value писать не value="1" а вот так
value="<?php print $cnt_tvr[1]; ?>"
value="<?php print $cnt_tvr[2]; ?>"
где $cnt_tvr[] это полученные кол-ва в момент обработки. НО! до кода с обработкой ты должен проинициализировать массив и присвоить ему значения по умолчанию, в твоем случае каждый элемент получает значение 1. Тогда если есть обработка, то массив получит новые значения, а если нет будут печататься по умолчанию.

   
 
 автор: SMAlik   (25.01.2005 в 15:00)   письмо автору
 
   для: XPraptor   (25.01.2005 в 14:57)
 

Огромное спасибо!!! Вроде пока всё.

   
Rambler's Top100
вверх

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