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

Форум PHP

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

 

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

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

тема: Передача email
 
 автор: RuslanBLR   (23.12.2011 в 12:38)   письмо автору
 
 

Привет всем! подскажите - не получается передать количество товара - берет только последнее указанное число и присваивает каждой позиции. как сделать чтобы товару соответствовала свое количество???

корзина:

<?
<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>&nbsp;</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:58)   письмо автору
 
   для: RuslanBLR   (23.12.2011 в 12:38)
 

передаю через POST количество для каждого товара name="kol" --->
<input type="text" name="kol" size="3" value="" />


а вот пытаюсь выводить в сообщении количество для каждого това:

(".$_POST[kol]." штук)


а получается если у нас например 2 товара в корзине. Ставлю напротив каждого каличество.
А в сообщение попадает 2 товара но с количеством - последнего. Что не правильно???

  Ответить  
 
 автор: cheops   (23.12.2011 в 13:29)   письмо автору
 
   для: RuslanBLR   (23.12.2011 в 12:58)
 

Если у вас два разных вида товаров, то почему $_POST[kol] в единственном экземпляре? Этот параметр как минимум должен быть массивом, чтобы хранить количества каждого вида товаров или проблема с чем-то другим?

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 13:34)   письмо автору
 
   для: cheops   (23.12.2011 в 13:29)
 

вы все првильно говорите! Как это записать??? типо этого?

<input type=text name=Arr[] size=5 value=".$f[i].">

  Ответить  
 
 автор: cheops   (23.12.2011 в 13:37)   письмо автору
 
   для: RuslanBLR   (23.12.2011 в 13:34)
 

Ну да, у вас если используется в качестве имени массив
name=Arr[]
то в $_POST у вас будет по сути двумерный массив. То же самое следует провернуть с параметром kol, только я что-то не могу найти участок, который ответственен за него в HTML-форме...

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 13:43)   письмо автору
 
   для: cheops   (23.12.2011 в 13:37)
 

т.е вот мой
<input type="text" name="kol" size="3" value="" />


как я его должен поменять так:

input type="text" name=arr[] size="3" value="" />



а как вывести в сообщение?

  Ответить  
 
 автор: cheops   (23.12.2011 в 13:45)   письмо автору
 
   для: RuslanBLR   (23.12.2011 в 13:43)
 

Примерно, только этих input-ов должно быть столько же, сколько товаров. Кроме того, для удобства хорошо бы в квадратные скобки поместить идентификатор товара, чтобы в обработчики ориентироваться не на порядок следования 0, 1, 2... которые назначаться автоматически, а на идентификатор товара из базы данных.

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 13:47)   письмо автору
 
   для: 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'] />
я правильно написал?


а как вывести их в сообщения?

  Ответить  
 
 автор: cheops   (23.12.2011 в 13:53)   письмо автору
 
   для: RuslanBLR   (23.12.2011 в 13:47)
 

Ага, я так понимаю у вас kol уже в цикле, тогда он должен выглядеть как минимум так
<input type="text" name="kol[]" size="3" value="" /> 

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 13:58)   письмо автору
 
   для: 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']];

  Ответить  
 
 автор: cheops   (23.12.2011 в 14:08)   письмо автору
 
   для: RuslanBLR   (23.12.2011 в 13:58)
 

Просто id не стоит... вы не торопитесь, сначала оставьте [] выведите дамп массива $_POST - поглядите как он выглядит и как вам лучше данные взять.

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 14:40)   письмо автору
 
   для: cheops   (23.12.2011 в 14:08)
 

помогите пожалуйсто!!!!!! я уже не могу - в психушку скоро попаду!!!!!!!!!!!

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 15:28)   письмо автору
 
   для: cheops   (23.12.2011 в 14:08)
 

я не понимаю - все перепробовал!!!!!!!!! в.......

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 16:17)   письмо автору
 
   для: cheops   (23.12.2011 в 14:08)
 

не понимаю как этот массив вывести?

<input type="text" name="kol[]" size="3" value="" />


подскажите! умаляю!!!

  Ответить  
 
 автор: cheops   (23.12.2011 в 19:30)   письмо автору
 
   для: 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>";
?>

  Ответить  
 
 автор: RuslanBLR   (24.12.2011 в 12:03)   письмо автору
 
   для: cheops   (23.12.2011 в 19:30)
 

вывожу дамп kol выводит:

Array
 (
  
     [kol] => Array
         (
             [0] => 3
             [1] => 5
         )
  
 )


а как теперь эти данные прикрепить к нужному товару????

  Ответить  
 
 автор: RuslanBLR   (23.12.2011 в 14:11)   письмо автору
 
   для: 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 в 16:37)   письмо автору
 
   для: 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 в 17:27)   письмо автору
 
   для: 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   (24.12.2011 в 13:50)   письмо автору
 
   для: 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);
}
?>

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

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