Помогите пожалуйста с простой формой отправки письма.

12
Р
На сайте с 07.02.2013
Offline
178
1258

Приветствую.

Требуется помощь с простой формой отправки письма на почту типа POST-формы.

Сразу скажу, что в PHP не силен, но кое что знаю. Возникли сложности с отправкой и отображением данных при отправке формы.

CMS: cs-cart

КОД ФОРМЫ

<form action="forms/k-fast_order.php" method="post" name="fast_order">

{assign var="sku" value="sku_$obj_id"}{$smarty.capture.$sku}
<label>Ваш телефон</label><input name="phone" type="text" placeholder="(123)456-7890" required/>
</form>

Я не могу передать в обработчик формы этот параметр (в cms - это артикул товара)

{assign var="sku" value="sku_$obj_id"}{$smarty.capture.$sku}
Мне нужно чтобы этот параметр передавался в обработчик и отсылался на почту. Пробовал создавать скрытое поле и присваивать ему это значение и многое другое, но ничего не получается. Помогите пожалуйста мне решить эту проблему.
iqmaker
На сайте с 17.04.2012
Offline
342
#1

Я не понял, ты не можешь принять или отправить. Т.е. код html в браузере получается каким ? Обычно делается input с type hidden, в него засовывается инфа которая потом передается на сервер через post вместе со всеми остальными полями формы.

Р
На сайте с 07.02.2013
Offline
178
#2
iqmaker:
Я не понял, ты не можешь принять или отправить. Т.е. код html в браузере получается каким ? Обычно делается input с type hidden, в него засовывается инфа которая потом передается на сервер через post вместе со всеми остальными полями формы.

Поясню.

Вот этот параметр

{assign var="sku" value="sku_$obj_id"}{$smarty.capture.$sku} 
я не могу передать в обработчик формы, ни, следовательно, отправить письмом на почту с эти параметром. Я пробовал использовать скрытое поле таким образом
<input name="test" type="hidden" value="{assign var=&quot;sku&quot; value=&quot;sku_$obj_id&quot;}{$smarty.capture.$sku} " />
и, к примеру, в обработчике выводить сообщение с проверкой отображения этого поля

$test = $_POST['test'];

echo "$test";

Но не получается. Есть идеи?

iqmaker
На сайте с 17.04.2012
Offline
342
#3

Честно сказать, я не очень понимаю, что вы делаете. Покажите форму html ( ее код ), после обработки в браузере, что в ней находится в значении test, value. Я не знаком с вашей цмс, но принципы везде одни.

Р
На сайте с 07.02.2013
Offline
178
#4

Хорошо.

Вот упрощенный код формы

<form action="forms/k-fast_order.php" method="post" name="fast_order">
{assign var="sku" value="sku_$obj_id"}{$smarty.capture.$sku}

<label>Ваш телефон</label>
<input name="phone" type="text" placeholder="(123)456-7890" required/>

<label>Название товара</label>
<input name="test" type="hidden" value="{assign var=&quot;sku&quot; value=&quot;sku_$obj_id&quot;}{$smarty.capture.$sku} " />
</form>

Вот упрощенный код обработчика

<?php
$phone = $_POST['phone'];
$test = $_POST['test'];

echo "$phone";
echo "$test";

?>

Не получается передать параметр, находящийся в скрытом поле.

iqmaker
На сайте с 17.04.2012
Offline
342
#5

Ну как вы не хотите понять. Откройте страницу на которой форма, в браузере, после чего посмотрите исходный код страницы, там будет ваша форма <form action=""> .... и т.д. что там, вот прямо код формы сюда скопипастите, интересует значение переменной <input name="text".

А то, что вы сюда копируете мне ни о чем не говорит, т.к. вы копируете кусок еще не обработанный шаблонизатором, а нужно увидеть, что там будет после шаблонизатора, надеюсь ясно выражаюсь :) ?

Т.е. как все обычно происходит:

Есть страница назовем ее "А", в ней можно использовать всякие хитрости шаблонных движков и прочие прелести вроде "{$smarty.capture.$sku}".

Дальше эта страница обрабатывается шаблонизатором вашей цмс или php что там у вас, и она превращается уже в страницу назовем ее "B", где этих прелестей понятных только шаблонному движку быть не должно, и эта страница B отдается браузеру для рендеринга. Вы мне все время показываете страницу A, а я вас прошу показать мне страницу B.

Р
На сайте с 07.02.2013
Offline
178
#6

Код в самом шаблоне


<input name="test" type="hidden" value="{assign var=&quot;sku&quot; value=&quot;sku_$obj_id&quot;}{$smarty.capture.$sku} " />

Меняется в браузере на этот


<input type="hidden" value=" " name="test">

Такой же код отображается даже если тип поля сменить с hidden на text

iqmaker
На сайте с 17.04.2012
Offline
342
#7

Вот уже что-то, надеюсь вы сами начинаете понимать, что дело не в обработчике, а в самом поле, которое как вы видите не отрисовывается.

Т.е. все дело в этой строке:

{assign var=&quot;sku&quot; value=&quot;sku_$obj_id&quot;}{$smarty.capture.$sku}

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

---------- Добавлено 12.03.2013 в 18:24 ----------

Судя по мануалу то строка должна выглядеть приблизительно так:

<input type="hidden" value="{$lang.copyright}" name="test">

где $lang.copyright ваше значение.

Р
На сайте с 07.02.2013
Offline
178
#8
iqmaker:
Откуда появилась такая строка? Вы ее сделали по какому-то образцу?

Эта переменная находится в шаблоне страницы товара (template.tpl). Если ее прописать в самом шаблоне, то она выводится корректно. Эта строка отображает артикул товара.

Увидеть можно по ссылке http://demo.cs-cart.com/professional/40-class-40.0-diag.-led-5003-series-tv.html

iqmaker
На сайте с 17.04.2012
Offline
342
#9

и учтите, что значение в {}, это не обязательно php код, это код, который понимает ваш шаблонизатор, он гарантированно поймет выражение типа {$anyvalue}, все остальное подскажет мануал по cs-cart.

---------- Добавлено 12.03.2013 в 18:33 ----------

рецидивист:
Увидеть можно по ссылке http://demo.cs-cart.com/professional/40-class-40.0-diag.-led-5003-series-tv.html

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

Р
На сайте с 07.02.2013
Offline
178
#10
iqmaker:
и учтите, что значение в {}, это не обязательно php код, это код, который понимает ваш шаблонизатор, он гарантированно поймет выражение типа {$anyvalue}, все остальное подскажет мануал по cs-cart.

Спасибо вам, буду пытаться разобраться в этом.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий