|
|
|
| Привет всем! подскажите - не получается передать количество товара - берет только последнее указанное число и присваивает каждой позиции. как сделать чтобы товару соответствовала свое количество???
корзина:
<?
<form method="POST" onsubmit="return validar(this)" id="form1" action="ZakazOtpr.php">
<br><table border=0 align=left width=100%>
<tr>
<td>
<p>
<input type="hidden" name="token" value="<?=$token?>" />
</p>
<p>
<input type="hidden" name="ip" value="<?=$_SERVER['REMOTE_ADDR']?>" />
</p>
<p>
<input type="hidden" name="httpref" value="<?=$httprefe?>" />
</p>
<p>
<input type="hidden" name="httpagent" value="<?=$httpagente?>" />
</p>
<p>
<input type="hidden" name="date" value="<?=$datee?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="name"><font color="red">*</font>Контактное имя:</label></td><td>
<input name="name" id="name" type="text" value="" />
</td>
</tr>
<tr>
<td align="right">
<label for="email">E-mail:</label></td><td>
<input name="email" id="email" type="text" value="" />
</td>
</tr>
<tr>
<td align="right">
<label for="phone"><font color="red">*</font>Контактный телефон:</label></td><td>
<input name="phone" id="phone" type="text" value="" />
</td>
</tr>
<tr>
<td align="right">
<label for="message"><font color="red">*</font>Адрес доставки:</label></td><td>
<textarea id="message" name="message" cols="30" rows="5"></textarea>
</td>
</tr>
<tr>
<td align="right">
<label for="uword"><font color="red">*</font>Введите слово указанное в картинки:</label>
</td>
<td>
<input type="text" name="uword" id="uword" value="" />
</td>
</tr>
<tr>
<td align="right">
<script type="text/javascript">cimg()</script>
</td>
</tr>
</table>
<div class="taxonomy"></div>
<div class="content">
<br>
<table border=1 width=100%>
<tr><td align=center bgcolor=#000000><font color=white>код</font></td><td bgcolor=#000000><font color=white></font></td><td align=center bgcolor=#000000><font color=white>количество</font></td><td bgcolor=#000000 align=center><font color=white>обновить</font></td><td bgcolor=#000000 align=center><font color=white>цена за шт</font></td><td bgcolor=#000000 align=center><font color=white>сумма товара</font></td><td bgcolor=#000000 align=center><font color=white>удалить товар</font></td></tr>
<?php
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB)) exit(@mysql_error());
for ($i=0; $i<$_SESSION['prod_count']; $i++) {
/* получаем информацию о товаре из базы данных */
$q="SELECT * FROM CLIPS WHERE id='".$_SESSION[product_id][$i]."'";
$query=mysql_query($q);
$prod_in_cart=mysql_fetch_assoc($query);
?>
<tr>
<td align=center><? echo "$prod_in_cart[kod]"; ?></td>
<td align=center><img src='clips/<?php echo $prod_in_cart['image'] ;?>' width=50px height=50px></td>
<td align=center>
<!-- А дальше идут две формы для изменения количества товара и удаления -->
<input type="text" name="kol" size="3" value="" />
<input type="hidden" value="<?php echo $i;?>" name="upd_id"/></td>
<td align=center><?php echo $_SESSION['product_price'][$i];?></td>
<td align=center><?php echo $_SESSION['product_price'][$i]* $_SESSION['product_count'][$i];?></td>
</tr>
<?php
}
?>
</table>
<table border=0 width=100%>
<tr>
<td> </td>
</tr>
<tr>
<td rows=6><p class="contGLAV2"><strong>ОБЩАЯ СУММА ТОВАРОВ:<font color=red> <? echo "$_SESSION[cart_sum]"; ?> бел.руб.</font></strong></p></td>
</tr>
</table>
</div>
<div class="clear"></div>
</div><div class="node">
<h1><p class="contGLAV2"><font color=#BEBEBE><strong>Отправить</font></strong></p></h1>
<?
echo "<table border=0 width=100% >";
echo "<br><tr>";
echo '<td colspan="11" align=center><input type="submit" name="goo" value="" onClick="return Formdata(this.form)"></td></tr>';
echo "</form>";
echo "</table>";
?>
</td></tr></table>
?>
|
отправка сообщения:
<?
session_start();
$_SESSION['name']=$_POST['name'];
$_SESSION['email']=$_POST['email'];
$_SESSION['phone']=$_POST['phone'];
$_SESSION['message']=$_POST['message'];
if(isset($_POST["goo"]))
{
$message = "Дата заказа:\t\t(".date("d.m.Y").")";
$message = $message."\nЗаказчик:\t\t(".$_SESSION[name].")";
$message = $message."\nКонтактные телефоны\t\t(".$_SESSION['email'].")";
$message = $message."\nАдрес доставки\t\t(".$_SESSION['phone'].")";
$message = $message."\nАдрес доставки\t\t(".$_SESSION['message'].")";
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB)) exit(@mysql_error());
for ($i=0; $i<$_SESSION['prod_count']; $i++) {
$q="SELECT * FROM CLIPS WHERE id='".$_SESSION[product_id][$i]."'";
$query=mysql_query($q);
$prod_in_cart=mysql_fetch_assoc($query);
echo $q;
echo "<br>";
echo $_POST[kol];
$message = $message."\n\nСписок заказа:\n";
$sum=0;
$message = $message."[$i] --> \t $prod_in_cart[kod] \t\t $prod_in_cart[name] \t\t $prod_in_cart[price] \t\t(".$_POST[kol]." штук) \n";
$sum+=$f['cena']*=$_POST['kol'.$f['id']];
}
$message = $message."\n Общая сумма заказа: $sum тыс. бел. рублей";
$headers = "Content-type: text/plain; charset=windows-1251 \r\n";
$headers .= "FROM: CLIPS-Shop \r\n";
mail("vvvvvvvvvvv", "vvvvvvvvvvvvv", $message, $headers);
}
?>
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 12:38)
| | передаю через POST количество для каждого товара name="kol" --->
<input type="text" name="kol" size="3" value="" />
|
а вот пытаюсь выводить в сообщении количество для каждого това:
а получается если у нас например 2 товара в корзине. Ставлю напротив каждого каличество.
А в сообщение попадает 2 товара но с количеством - последнего. Что не правильно??? | |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 12:58)
| | Если у вас два разных вида товаров, то почему $_POST[kol] в единственном экземпляре? Этот параметр как минимум должен быть массивом, чтобы хранить количества каждого вида товаров или проблема с чем-то другим? | |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 13:29)
| | вы все првильно говорите! Как это записать??? типо этого?
<input type=text name=Arr[] size=5 value=".$f[i].">
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 13:34)
| | Ну да, у вас если используется в качестве имени массив
то в $_POST у вас будет по сути двумерный массив. То же самое следует провернуть с параметром kol, только я что-то не могу найти участок, который ответственен за него в HTML-форме... | |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 13:37)
| | т.е вот мой
<input type="text" name="kol" size="3" value="" />
|
как я его должен поменять так:
input type="text" name=arr[] size="3" value="" />
|
а как вывести в сообщение? | |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 13:43)
| | Примерно, только этих input-ов должно быть столько же, сколько товаров. Кроме того, для удобства хорошо бы в квадратные скобки поместить идентификатор товара, чтобы в обработчики ориентироваться не на порядок следования 0, 1, 2... которые назначаться автоматически, а на идентификатор товара из базы данных. | |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 13:45)
| | вот html форма где kol: они и выводятся напротив каждого товара
<?php
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB)) exit(@mysql_error());
for ($i=0; $i<$_SESSION['prod_count']; $i++) {
/* получаем информацию о товаре из базы данных */
$q="SELECT * FROM CLIPS WHERE id='".$_SESSION[product_id][$i]."'";
$query=mysql_query($q);
$prod_in_cart=mysql_fetch_assoc($query);
?>
<tr>
<td align=center><? echo "$prod_in_cart[kod]"; ?></td>
<td align=center><img src='clips/<?php echo $prod_in_cart['image'] ;?>' width=50px height=50px></td>
<td align=center>
<input type="text" name="kol" size="3" value="" />
<input type="hidden" value="<?php echo $i;?>" name="upd_id"/></td>
<td align=center><?php echo $_SESSION['product_price'][$i];?></td>
<td align=center><?php echo $_SESSION['product_price'][$i]* $_SESSION['product_count'][$i];?></td>
</tr>
<?php
}
?>
|
меняем input на: + value = $prod_in_cart['id']
<input type="text" name=Arr[] size="3" value=$prod_in_cart['id'] />
я правильно написал?
а как вывести их в сообщения? | |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 13:47)
| | Ага, я так понимаю у вас kol уже в цикле, тогда он должен выглядеть как минимум так
<input type="text" name="kol[]" size="3" value="" />
|
| |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 13:53)
| | совершенно верно - в цикле.
так в квадратные скобки надо шндентификатор товара или нет?
как я понял так: id является счетчикам товара:
<input type="text" name="kol[id]" size="3" value="" />
|
А как вывести в
$message = $message."[$i] --> \t $prod_in_cart[kod] \t\t $prod_in_cart[name] \t\t $prod_in_cart[price] \t\t(".$_POST[kol]." штук) \n";
$sum+=$f['cena']*=$_POST['kol'.$f['id']];
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 13:58)
| | Просто id не стоит... вы не торопитесь, сначала оставьте [] выведите дамп массива $_POST - поглядите как он выглядит и как вам лучше данные взять. | |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 14:08)
| | помогите пожалуйсто!!!!!! я уже не могу - в психушку скоро попаду!!!!!!!!!!! | |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 14:08)
| | я не понимаю - все перепробовал!!!!!!!!! в....... | |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 14:08)
| | не понимаю как этот массив вывести?
<input type="text" name="kol[]" size="3" value="" />
|
подскажите! умаляю!!! | |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 16:17)
| | Просто выводите дамп массива $_POST в обработчике
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
| Вам наглядно будет видна вся его структура, если вам нужен только kol, можно поступить так
<?php
echo "<pre>";
print_r($_POST['kol']);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 19:30)
| | вывожу дамп kol выводит:
Array
(
[kol] => Array
(
[0] => 3
[1] => 5
)
)
|
а как теперь эти данные прикрепить к нужному товару???? | |
|
|
|
|
|
|
|
для: cheops
(23.12.2011 в 13:53)
| | я не понимаю почему не правильно делаю как вы сказали:
<input type="text" name='kol".$prod_in_cart['kod']."' size="3" value="" />
|
а вот вывожу - но количество теперь вообще не выводится:
<?
session_start();
$_SESSION['kol']=$_POST['kol'];
$_SESSION['name']=$_POST['name'];
$_SESSION['email']=$_POST['email'];
$_SESSION['phone']=$_POST['phone'];
$_SESSION['message']=$_POST['message'];
if(isset($_POST["goo"]))
{
$_SESSION['kol']=$_POST['kol']=$kol;
$message = "Дата заказа:\t\t(".date("d.m.Y").")";
$message = $message."\nЗаказчик:\t\t(".$_SESSION[name].")";
$message = $message."\nКонтактные телефоны\t\t(".$_SESSION['email'].")";
$message = $message."\nАдрес доставки\t\t(".$_SESSION['phone'].")";
$message = $message."\nАдрес доставки\t\t(".$_SESSION['message'].")";
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB)) exit(@mysql_error());
for ($i=0; $i<$_SESSION['prod_count']; $i++) {
$q="SELECT * FROM CLIPS WHERE id='".$_SESSION[product_id][$i]."'";
$query=mysql_query($q);
echo $q;
echo "<br>";
echo $_POST[kol];
$message = $message."\n\nСписок заказа:\n";
$sum=0;
$prod_in_cart=mysql_fetch_assoc($query);
$message = $message."[$i] --> \t $prod_in_cart[kod] \t\t $prod_in_cart[name] \t\t $prod_in_cart[price] \t\t (".$_POST['kol'.$prod_in_cart['kod']]." штук) \n";
}
$message = $message."\n Общая сумма заказа: $sum тыс. бел. рублей";
$headers = "Content-type: text/plain; charset=windows-1251 \r\n";
$headers .= "FROM: CLIPS-Shop \r\n";
mail("dddddd", "ddddddddddd", $message, $headers);
}
?>
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 14:11)
| | что не правильно?
вот ввожу количество 3 и 4
<input type="text" name="kol[]" size="3" value="" />
|
проверяю что попало в массив kol:
foreach($_POST['kol'] as $k=>$v);
echo $v;
|
выводит только одно число 4
Я понимаю суть но немогу написать. Получается надо как то присвоить input к коду товаров в бд. Как это сделать? | |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 16:37)
| | передаю данные через POST:
<input type="text" name='kol".$prod_in_cart[id]."' size="3" value="" />
|
проверяю:
if(isset($_POST["kol'.$prod_in_cart[id]'"]))
{
echo "есть данные";
}
echo "нет данных";
|
выводит что данных нет. Почему не передается переменная?? | |
|
|
|
|
|
|
|
для: RuslanBLR
(23.12.2011 в 17:27)
| | СПАСИБО БОЛЬШОЕ ВСЕМ.
решение:
<input type="text" name="kol[<?=$prod_in_cart['id'];?>]" size="3" value="" />
|
отправка:
<?
session_start();
$_SESSION["kol'.$prod_in_cart[id]'"]=$_POST["kol'.$prod_in_cart[id]'"];
$_SESSION['name']=$_POST['name'];
$_SESSION['email']=$_POST['email'];
$_SESSION['phone']=$_POST['phone'];
$_SESSION['message']=$_POST['message'];
if(!isset($_POST[kol]))
{
echo "нет";
}
echo "<pre>";
print_r($_POST);
echo "</pre><hr>";
echo "$_POST[kol]";
echo "да";
if(isset($_POST["goo"]))
{
$message = "Дата заказа:\t\t(".date("d.m.Y").")";
$message = $message."\nЗаказчик:\t\t(".$_SESSION[name].")";
$message = $message."\nКонтактные телефоны\t\t(".$_SESSION['email'].")";
$message = $message."\nАдрес доставки\t\t(".$_SESSION['phone'].")";
$message = $message."\nАдрес доставки\t\t(".$_SESSION['message'].")";
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB));
$q = 'SELECT * FROM `CLIPS` WHERE `id` IN (' . implode(',', $_SESSION['product_id']) . ')';
$query = mysql_query($q);
if(mysql_num_rows($query)) {
$message = $message."\n\nСписок заказа:\n";
$sum=0;
while($row = mysql_fetch_assoc($query)) {
$message = $message."[$i] -->\t $row[artikul] \t\t $row[kod] \t\t $row[name] \t\t $row[price] \t\t (".$_POST['kol'][$row['id']] . " штук) \n";
echo $_POST["kol'.$prod_in_cart[id]'"];
}
}
$message = $message."\n Общая сумма заказа: $sum тыс. бел. рублей";
$headers = "Content-type: text/plain; charset=windows-1251 \r\n";
$headers .= "FROM: мммммммммммммм \r\n";
mail("vvvvvvvvv", "vvvvvvvvvv", $message, $headers);
}
?>
|
| |
|
|
|