Автор Тема: Помогите отправить данные с формы на почту  (Прочитано 1473 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sash12

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evolution
Здравствуйте. Я начинающий разработчик, с MODX Evolution работаю недавно. Есть задача- вывести модальнок окно с формой, и отправить с нее данные на почту. Окно уже готово, реализовано с помощью fancybox.
Но никак не получается сделать отправку на почту.
кусок кода шаблона



<div id="block__modal_message">
<p><a class="modalbox" href="#inline"><img src="modal_voda1.jpg" /></a></p>
<>
{{form_modal}}


код чанка form_modal

[+validationmessage+]


<div id="inline">
   <h2>Оформление заказа</h2>
   <div class="zakaz_modal">
      <img src="modal_voda_min1.jpg" />
      <p>Вода питьевая, 19 л.</p>
      <p>Количество:</p>
      
      <div class="count-control">
         <div class="minus">   &lt;<>
             <div class="value">
                    <input class="count hidden" type="text">
                 <span class="number">1</span>
                 <span class="text">шт.</span>
            <>
         <div class="plus">&gt;<>
         
         
      <>
      <div class="rezultat">Итого к оплате: <b id="total">100</b> руб. <>
      
   <>
   
   <form method="post" action="[~[*id*]~]" id="`modal_mail">
   <input type="hidden" name="formid" value="modal_mail" />
      <div class="form_pole_left">
         <label class="lable_modal" for="name">Как к Вам обращаться?</label>
         <input type="text" id="name" name="name" class="txt" placeholder="Введите имя" eform="Имя::1">
      <>
      <div class="form_pole_left">   
         <label class="lable_modal" for="tel">Контактный телефон</label>
         <input type="tel" id="tel" name="tel" class="txt" placeholder="Введите телефон" eform="Телефон:string :1">
      <>
      <br>
      <label for="msg">Адрес доставки</label>
      <textarea id="msg" name="msg" placeholder="Введите адрес" class="txtarea" eform="Текст сообщения:html:1"></textarea>
      <button id="submit" type="submit" name="submit">Заказать</button>
      
   </form>
   
   <p class="action_modal">Внимание! Доставка любого количества воды - бесплатно!</p>
   <p>*Качество нашей продукции соответствует положениям СанПиНа 2.1.4. 1116-2002 о гигиенических требованиях к питьевой воде первой категории и ГОСТ Р 52109-2003, что подтвержено сертификатами качества и соответствия.</p>
<>


чанк modal_mail

[!getServer!]
[!eForm? &formid=`modal_mail` &to=`elena_pilyushenko@mail.ru` &tpl=`form_modal` &report=`tplReport` &gotoid=`10` &thankyou=`33`  &vericode=`0`  &lang=`russian-UTF8` &eformOnBeforeMailSent=`getServer` !]


есть еще чанки tplReport и tplThank.

но ничего не приходит на форму и не отправляется.
помогите пожалуйста. пытаюсь сделать давно, и все безрезультатно

Оффлайн jean179

  • Главный модератор
  • Продвинутый
  • *****
  • Сообщений: 484
  • jean179.ru
    • Просмотр профиля
    • Отдых в Анапе в частном секторе
  • Версия modx: 1.12
У вас все сделано наоборот.

Где должна быть форма, там должен быть вызов сниппета eForm, а уже ему вы даете шаблон с формой.

Вот пример с рабочего проекта.

1.  На странице после текста вызываю сниппет через чанк
<p>Вы всегда можете связаться с администрацией сайта при помощи формы обратной связи, которая находится ниже. Все поля этой форма обязательны к заполнению. Если ваше сообщение требует ответа, то вы его обязательно получите.</p>
{{feedback}}
2. Чанк feedback - это обертка вызова сниппета
[!eForm? 
&formid=`feedbackForm`
&subject=`Сообщение с сайта`
&tpl=`eFeedbackForm`
&report=`eFeedbackReport`
&thankyou=`thank-tpl`
&gotoid=`[*id*]`
&vericode=`0` !]

Вызывать обязательно не кешируемым. Я передаю ему параметры, где eFeedbackForm - это сама форма. Чанк eFeedbackReport - это шаблон письма, чанк thank-tpl - это слова благодарности что письмо ушло.

eFeedbackForm
<!--noindex-->
<h2>Форма обратной связи</h2>
<div id="feedback">
    [+validationmessage+]
    <form id="ContactForm" method="post"  action="[~[*id*]~]">
        <input type="hidden" name="formid" value="contact-form" />
        <p>
            <label for="subject">Тема сообщения</label><br>
          <select id="subject" name="subject">
                <option value="Предложение">Предложение</option>
                <option value="Вопрос">Вопрос</option>
            </select>
         
        </p>
        <p>
           <label for="name">Ваше имя</label> <br /><input id="name" type="text" class="text" name="name" size="40" eform="Ваше имя::1"   />
        </p>
        <p>
            <label for="email">Ваш e-mail</label> <br />
             <input type="text" id="email" class="text" name="email" size="40" maxlength="50" eform="Email:email:1"  />
        </p>
        <p>
            <label for="message">Сообщение</label> <br />
            <textarea id="message" cols="70" rows="10" maxlength="1500"  name="comments" eform="Сообщение:html:1" ></textarea>
        </p>
        <p>
            <input name="submit" id="submit" class="button" type="submit" value="Отправить" />
            <input class="button" type="reset" id="reset" value="Очистить" />
        </p>
    </form>
</div>
<!--/noindex-->

eFeedbackReport
<p>Это сообщение было отправлено посетителем по имени [+name+] с помощью формы обратной связи. </p>
<table>
<tr valign="top"><td><b>Тема письма:</b></td><td>[+subject+]</td></tr>
<tr valign="top"><td><b>Имя:</b></td><td>[+name+]</td></tr>
<tr valign="top"><td><b>Email:</b>:</td><td>[+email+]</td></tr>
<tr valign="top"><td><b>Сообщение:</b></td><td>[+comments+]</td></tr>
</table>
<p>Вы можете использовать эту ссылку для ответа: <a href="mailto:[+email+]?subject=RE:[+subject+]">[+email+]</a></p>

thank-tpl
<h2>Спасибо!</h2>

<div class="thank">
    <p>Спасибо, что воспользовались формой обратной связи на нашем сайте. Ваше сообщение будет рассмотрено в кротчайшие сроки, и если оно требует ответа, Вы обязательно его получите.</p>
    <h4>Отправленная информация:</h4>
   
    <p>
    <strong>Тема письма: </strong>[+subject+]</br>
    <strong>Ваше имя:</strong> [+name+]<br /><strong>Ваш e-mail:</strong> [+email+]<br /><strong>Текст сообщения:</strong> [+comments+]</p>
</div>

<p>Вернуться на <a href="[~1~]" title="Главная страница сайта">главную страницу</a></p>

Оффлайн Sash12

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evolution
я правильно понимаю, что приведенный вами пример-это просто форма? или она все - таки во всплывающем окне?

Оффлайн Sash12

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evolution
1.  На странице после текста вызываю сниппет через чанк
Код: [Выделить]
<p>Вы всегда можете связаться с администрацией сайта при помощи формы обратной связи, которая находится ниже. Все поля этой форма обязательны к заполнению. Если ваше сообщение требует ответа, то вы его обязательно получите.</p>
{{feedback}}

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

Оффлайн jean179

  • Главный модератор
  • Продвинутый
  • *****
  • Сообщений: 484
  • jean179.ru
    • Просмотр профиля
    • Отдых в Анапе в частном секторе
  • Версия modx: 1.12
Какая разница: всплывающая форма или нет? Это только для jscript и отображение есть разница, а для php разницы никакой нет.

Вы сначала попробуйте как я показал без всяких всплывающих окон. Получится - начнете копать верстку и jscript. А если нет, то ищи ошибки в вызове сниппета.

Оффлайн Sash12

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evolution
Какая разница: всплывающая форма или нет? Это только для jscript и отображение есть разница, а для php разницы никакой нет.

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

Оффлайн jean179

  • Главный модератор
  • Продвинутый
  • *****
  • Сообщений: 484
  • jean179.ru
    • Просмотр профиля
    • Отдых в Анапе в частном секторе
  • Версия modx: 1.12
Тут скрипты нужно копать, я в скрпитах слаб. Увы.

Оффлайн Sash12

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evolution
Тут скрипты нужно копать, я в скрпитах слаб. Увы.

спасибо и на этом, дальше сама разберусь=)