Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [php] Выбор товара из списка и отправка на e-mail  (Прочитано 16247 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« : 29-01-2010 04:51 » 

Добрый день. Заранее извиняюсь, если подобный вопрос уже задавали.
В общем, задача такая.
Есть список товаров, оформленный в виде таблицы. Выглядит это примерно так - http://s43.radikal.ru/i101/1001/2e/95b61a9e3abd.jpg
Вот код:
Код:
<body>
  <table width="100%" height="40" border="0">
    <tr>
      <td width="52%" ></td>
      <td width="48%">
        <input name="search" type="text" value="search..." size="50" />
        <input type="submit" value="Find!" name="submit" />
      </div></td>
    </tr>
  </table>

<table width="44%" border="0" align="center" bgcolor="#CCFFCC">
  <tr>
    <td width="38%"><div align="center"><strong>Name</strong></div></td>
    <td width="22%"><div align="center"><strong>Price</strong></div></td>
    <td width="19%"><div align="center"><strong>Amount</strong></div></td>
    <td width="21%"><div align="center"><strong>Choose</strong></div></td>
  </tr>
  <tr>
    <td><div align="center">Product 1</div></td>
    <td><div align="center">100</div></td>
    <td><form id="form1" name="form1" method="post" action="">
      <label>
        <input type="text" name="textfield" />
        </label>
    </form>    </td>
    <td><form id="form5" name="form5" method="post" action="">
      <label>
        <div align="center">
          <input type="checkbox" name="checkbox" value="checkbox" />
        </div>
      </label>
    </form>    </td>
  </tr>
  <tr>
    <td><div align="center">Product 2</div></td>
    <td><div align="center">200</div></td>
    <td><form id="form2" name="form2" method="post" action="">
      <label>
        <input type="text" name="textfield2" />
        </label>
    </form>    </td>
    <td><form id="form6" name="form6" method="post" action="">
      <label>
        <div align="center">
          <input type="checkbox" name="checkbox2" value="checkbox" />
        </div>
      </label>
    </form>    </td>
  </tr>
  <tr>
    <td><div align="center">Product 3</div></td>
    <td><div align="center">300</div></td>
    <td><form id="form3" name="form3" method="post" action="">
      <label>
        <input type="text" name="textfield3" />
        </label>
    </form>    </td>
    <td><form id="form7" name="form7" method="post" action="">
      <label>
        <div align="center">
          <input type="checkbox" name="checkbox3" value="checkbox" />
        </div>
      </label>
    </form>    </td>
  </tr>
  <tr>
    <td><div align="center">Product 4</div></td>
    <td><div align="center">400</div></td>
    <td><form id="form4" name="form4" method="post" action="">
      <label>
        <input type="text" name="textfield4" />
        </label>
    </form>    </td>
    <td><form id="form8" name="form8" method="post" action="">
      <label>
        <div align="center">
          <input type="checkbox" name="checkbox4" value="checkbox" />
        </div>
      </label>
    </form>    </td>
  </tr>
</table>

<form id="form9" name="form9" method="post" action="">
  <label>
  <div align="center">
    <input type="submit" name="Submit" value="Zakaz" />
    </div>
  </label>
</form>
<p>&nbsp;</p>
</body>

После выбора товара и ввода необходимого количества нажимаем кнопку, и нужно получить вот такой результат - http://i076.radikal.ru/1001/a1/dbb58691ccae.jpg
Т.е. мы показываем выбранные товары, количество и стоимость.
Затем Пользователь вводит необходимую информацию о себе и отправляет письмо.
Вот примерный код второй страницы:
Код:
<body>
  <table width="100%" height="40" border="0">
    <tr>
      <td width="52%" ></td>
      <td width="48%">
        <input name="search" type="text" value="search..." size="50" />
        <input type="submit" value="Find!" name="submit" />
      </div></td>
    </tr>
  </table>

  <div align="center" class="style1 style6"><strong>You have chosen following products  </strong></div>
  
<table width="44%" border="0" align="center" bgcolor="#CCFFCC">
  <tr>
    <td width="38%"><div align="center"><strong>Name</strong></div></td>
<td width="19%"><div align="center"><strong>Amount</strong></div></td>
    <td width="22%"><div align="center"><strong>Price</strong></div></td>
  </tr>
  <tr>
    <td><div align="center">Product 1</div></td>
<td><div align="center">1</div></td>
    <td><div align="center">100</div></td>
  </tr>
  <tr>
    <td><div align="center">Product 2</div></td>
<td><div align="center">2</div></td>
    <td><div align="center">200</div></td>
  </tr>
  <tr>
    <td><div align="center">Product 4</div></td>
<td><div align="center">4</div></td>
    <td><div align="center">400</div></td>
  </tr>
  <tr>
  <td></td>
  <td><div align="center" class="style7 style4"><strong>Total</strong></div></td>
  <td><div align="center" class="style7 style4"><strong>2100</strong></div></td>
  </tr>
</table>

<?php
function show_form()
{
?>

<form action="" method=post>
<div align="center">
<br />Фамилия Имя Отчество <span class="style7">*</span> <br />
<input type="text" name="FIO" size="50"/>
<br />e-mail <br />
<input type="text" name="Mail" size="50" />
<br />Контактный телефон <span class="style7">*</span><br />
<input type="text" name="Phone" size="50" />
<br />Доп.информация <br />
<textarea name="mess" rows="4" cols="47"></textarea>
<br /><input type="submit" value="Отправить" name="submit">
</div>
</form>

<table width="416" border="0" align=center>
  <tr>
    <td><span class="style1">поля, отмеченные [*] - обязательные для заполнения</span></td>
  </tr>
</table>
<?
}

function complete_mail() {
        // $_POST['FIO'] содержит данные из поля "Фамилия Имя Отчество", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['FIO'], 0, 100) - урезаем текст до 100 символов. Для переменных $_POST['Mail'], $_POST['Phone'], $_POST['mess'] все аналогично

        $_POST['FIO'] =  substr(htmlspecialchars(trim($_POST['FIO'])), 0, 100);
        $_POST['Mail'] =  substr(htmlspecialchars(trim($_POST['Mail'])), 0, 50);
        $_POST['Phone'] =  substr(htmlspecialchars(trim($_POST['Phone'])), 0, 30);
        $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);

        // если не заполнено поле "Имя" - показываем ошибку 0
        if (empty($_POST['FIO']))
             output_err(0);
        // если не заполнено поле "Сообщение" - показываем ошибку 2
        if(empty($_POST['mess']))
             output_err(2);
// создаем наше сообщение
        // require 'class.phpmailer.php';
        $mess = '
Имя отправителя:'.$_POST['FIO'].'
Контактный email:'.$_POST['Mail'].'
Контактный телефон:'.$_POST['Phone'].'
Сообщение:'.$_POST['mess'];
$Title = 'massege from site';
        // $to - кому отправляем
        $to = 'tat.yasha@mail.ru';
        // $from - от кого
        $from='test@mail.ru';
        mail($to, $Title, $mess, "From:".$from);
        echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
    $err[0] = 'ОШИБКА! Не введено имя.';
    $err[1] = 'ОШИБКА! Неверно введен e-mail.';
    $err[2] = 'ОШИБКА! Не введено сообщение.';
    echo '<p>'.$err[$num].'</p>';
    show_form();
    exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>
</body>

Что, собственно, мне нужно:
1. как сделать выбор товара, чтобы он переносился на др. страницу
2. Когда мы нажимаем кнопку отправить, нужно помимо контактной информации вложить в письмо таблицу с выбранными товарами.

Ребята, если поможете с кодом, буду бесконечно благодарна!!!
« Последнее редактирование: 29-01-2010 06:05 от Sel » Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 29-01-2010 07:18 » 

1. как сделать выбор товара, чтобы он переносился на др. страницу
Объясни, что ты под этим понимаешь.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« Ответ #2 : 29-01-2010 07:28 » 

ну вот пользователь выбрал несколько товаров, ввел количество, нажал на кнопку и нужно чтобы на странице вместо общего списка товаров (из которого он выбирал) появились выбранные им товары и форма для отправки письма. Т.е. я так понимаю нужно как-то перерисовать страницу, но при этом не потерять введенные данные и вывести их в нужном виде...
Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 29-01-2010 09:45 » 

ну вот пользователь выбрал несколько товаров, ввел количество, нажал на кнопку
Т.е. отправил данные формы

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


А теперь, внимательно прочитай мои слова.
1. Первая форма отправляет данные, которые
2. Обрабатываются скриптом, который подготавливают и выводит вторую форму

3. Дальше вопрос интересный, как поместить в письмо данные из первой формы?
хранить данные в сессиях или же в скрытых/видимых полях второй формы?
Я бы предпочел хранить в видимых полях readonly формы, но только с чекбоксами, как показано на рисунке

* dbb58691ccae.jpg (31.81 Кб - загружено 2475 раз.)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« Ответ #4 : 29-01-2010 09:55 » 

Sla,  в теории я понимаю как это должно работать, но вот как реализовать это? Я плохо разбираюсь в php, данная работа делается для диплома...
Собственно, поэтому я и написала
Ребята, если поможете с кодом, буду бесконечно благодарна!!!
Понимаю, с моей стороны это наглость, но может быть есть возможность помочь именно с кодом?
Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 29-01-2010 10:16 » 

Tatyana, писать будешь ты, я могу только подсказывать Улыбаюсь
Теперь потихоньку исправляя

Ошибка №1
Код:
<body>
  <table width="100%" height="40" border="0">
    <tr>
      <td width="52%" ></td>
      <td width="48%">
        <input name="search" type="text" value="search..." size="50" />
        <input type="submit" value="Find!" name="submit" />
      </div></td>
    </tr>
  </table>
не открыта и не закрыта форма поиска

Ошибка №2 Связана с отсутствием понимания как работает форма и назначения тегов
Код:
<td><form id="form1" name="form1" method="post" action="">
      <label>
        <input type="text" name="textfield" />
        </label>
    </form>    </td>
почитай про теги <label> <input>

Исправь первую форму
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« Ответ #6 : 29-01-2010 10:38 » 

Ошибка №1
не открыта и не закрыта форма поиска
Поиск я пока вообще не делаю, т.е. в принципе пока что его можно вообще убрать.

Ошибка №2 Связана с отсутствием понимания как работает форма и назначения тегов
Я так поняла нужно просто убрать теги <label>? Таблицу делала через Dreamweaver, так что теги ставила не я.

Собственно, вот что получилось в итоге:
Код:
<table width="44%" border="0" align="center" bgcolor="#CCFFCC">
  <tr>
    <td width="38%"><div align="center"><strong>Name</strong></div></td>
    <td width="22%"><div align="center"><strong>Price</strong></div></td>
    <td width="19%"><div align="center"><strong>Amount</strong></div></td>
    <td width="21%"><div align="center"><strong>Choose</strong></div></td>
  </tr>
  <tr>
    <td><div align="center">Product 1</div></td>
    <td><div align="center">100</div></td>
    <td><form id="form1" name="form1" method="post" action="">
        <input type="text" name="textfield" />
    </form>    </td>
    <td><form id="form5" name="form5" method="post" action="">
        <div align="center">
          <input type="checkbox" name="checkbox" value="checkbox" />
        </div>
    </form>    </td>
  </tr>
  <tr>
    <td><div align="center">Product 2</div></td>
    <td><div align="center">200</div></td>
    <td><form id="form2" name="form2" method="post" action="">
        <input type="text" name="textfield2" />
    </form>    </td>
    <td><form id="form6" name="form6" method="post" action="">
        <div align="center">
          <input type="checkbox" name="checkbox2" value="checkbox" />
        </div>
    </form>    </td>
  </tr>
  <tr>
    <td><div align="center">Product 3</div></td>
    <td><div align="center">300</div></td>
    <td><form id="form3" name="form3" method="post" action="">
        <input type="text" name="textfield3" />
    </form>    </td>
    <td><form id="form7" name="form7" method="post" action="">
        <div align="center">
          <input type="checkbox" name="checkbox3" value="checkbox" />
        </div>
    </form>    </td>
  </tr>
  <tr>
    <td><div align="center">Product 4</div></td>
    <td><div align="center">400</div></td>
    <td><form id="form4" name="form4" method="post" action="">
        <input type="text" name="textfield4" />
    </form>    </td>
    <td><form id="form8" name="form8" method="post" action="">
        <div align="center">
          <input type="checkbox" name="checkbox4" value="checkbox" />
        </div>
    </form>    </td>
  </tr>
</table>

Теперь нам нужно как-то передать данные, то что выбрал пользователь....
Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 29-01-2010 10:50 » 

"не правильно ты, дядя Федор, бутерброд кушаешь"

Я не знаю что такое Dreamweaver, (конечно знаю), но посмотри на первую строчку.
Ты не поняла как создавать форму в Dreamweaver

Поэтому подскажу
Код:
<form НУЖНО добавить нужные атрибуты !!!!!!!!!!!!!!!>
<table width="44%" border="0" align="center" bgcolor="#CCFFCC">
  <tr>
    <td width="38%"><div align="center"><strong>Name</strong></div></td>
    <td width="22%"><div align="center"><strong>Price</strong></div></td>
    <td width="19%"><div align="center"><strong>Amount</strong></div></td>
    <td width="21%"><div align="center"><strong>Choose</strong></div></td>
  </tr>
  <tr>
    <td><div align="center">Product 1</div></td>
    <td><div align="center">100</div></td>
    <td>
        <input type="text" name="textfield" />
    </td>
    <td>
        <div align="center">
          <input type="checkbox" name="checkbox" value="checkbox" />
        </div>
    </td>
  </tr>
  <tr>
    <td><div align="center">Product 2</div></td>
    <td><div align="center">200</div></td>
    <td>
        <input type="text" name="textfield2" />
    </td>
    <td>
        <div align="center">
          <input type="checkbox" name="checkbox2" value="checkbox" />
        </div>
    </td>
  </tr>
  <tr>
    <td><div align="center">Product 3</div></td>
    <td><div align="center">300</div></td>
    <td>
        <input type="text" name="textfield3" />
    </td>
    <td>
        <div align="center">
          <input type="checkbox" name="checkbox3" value="checkbox" />
        </div>
    </td>
  </tr>
  <tr>
    <td><div align="center">Product 4</div></td>
    <td><div align="center">400</div></td>
    <td>
        <input type="text" name="textfield4" />
    </td>
    <td>
        <div align="center">
          <input type="checkbox" name="checkbox4" value="checkbox" />
        </div>
     </td>
  </tr>
</table>
</form>

фух... замахался лишнее убирать
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« Ответ #8 : 29-01-2010 11:23 » 

аааа.... т.е. мы всю таблицу включаем в форму, а не отдельные элементы, чтобы передавать не только значение чекбоксов, но и наименование товара....  Поняла

так, вот эту строку
Код:
<form НУЖНО добавить нужные атрибуты !!!!!!!!!!!!!!!>

мы пишем вот так:
Код:
<form id="form1" name="form1" method="post" action="">

где в атрибуте
Код:
action=""
в дальнейшем укажем ссылку на скрипт, правильно?
Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 29-01-2010 11:44 » 

Tatyana, молодец, догадалась
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« Ответ #10 : 29-01-2010 16:00 » 

понять, то я поняла... но вот как дальше написать скрипт на php?... вот в этом основная проблема... про отправку на почту можно пока забыть, главное, чтобы работал выбор товаров...
Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 29-01-2010 18:20 » new

Tatyana, выбор товаров у тебя происходит в первой форме, типа "где-то" запоминаешь.
"где-то" можно реализовать по разному
1. запомнить в сессии
2. запомнить в в форме выбора

Конкретно нужно решать по месту и по желанию = возможностям)

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


что не понятно?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines