Передача параметра в форму

#
Передача параметра в форму
Добрый вечер)

редакция "корпорация"

создана "форма заказа", в форме есть поле "название". Нужно чтобы в это поле вставало название товара, со страницы товара (на нем есть кнопка заказать)

я сделала в шаблоне товара:

<li class="call-to-action"><a href="/send-order?name_tovar={name}" class="theme_btn">Заказать</a></li>

а как дальше не знаю....что прописать в ТДС и в шаблоне формы? ХЕЛП!
Модератор
#
Re: Передача параметра в форму
1. В ссылку лучше передавать не название товара, а его ID:
<li class="call-to-action"><a href="/send-order/?shop_item_id={@id}" class="theme_btn">Заказать</a></li>

2. В форме создаете скрытое поле с названием элемента "shop_item_name".
3. В коде формы получаете ID и если оно передано, то добавляете название в скрытое поле формы, для этого в коде ТДС формы блок
   if (!is_null(Core_Array::getPost($oForm->button_name)))
   {
      $Form_Controller_Show
         ->values($_POST + $_FILES)
         // 0 - html, 1- plain text
         ->mailType(Core_Array::get(Core_Page::instance()->libParams, 'mailType'))
         ->mailXsl(
            Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'notificationMailXsl'))
         )
         ->mailFromFieldName(Core_Array::get(Core_Page::instance()->libParams, 'emailFieldName'))
         ->process();
   }

заменяете на блок
   $aValues = $_POST + $_FILES;
   $shop_item_id = intval(Core_Array::getGet('shop_item_id'));
   if ($shop_item_id)
   {
      $oShop_Item = Core_Entity::factory('Shop_Item', $shop_item_id);
      $aValues['shop_item_name'] = $oShop_Item->name;
   }
   
   $Form_Controller_Show
         ->values($aValues);
   
   if (!is_null(Core_Array::getPost($oForm->button_name)))
   {
      $Form_Controller_Show
         //->values($_POST + $_FILES)
         // 0 - html, 1- plain text
         ->mailType(Core_Array::get(Core_Page::instance()->libParams, 'mailType'))
         ->mailXsl(
            Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'notificationMailXsl'))
         )
         ->mailFromFieldName(Core_Array::get(Core_Page::instance()->libParams, 'emailFieldName'))
         ->process();
   }
#
Re: Передача параметра в форму
спасибо за супер подробный ответ!

1. шаг исправила
2. шаг создала скрытое поле ( оно есть, если посмотреть файрбагом и отправить заказ (появляется строчка "Название", но оно пустое)
3. шаг - заменила блог

но название не подставляется.

Модератор
#
Re: Передача параметра в форму
в input значение подставляется? Посмотрите через Firebug.
#
Re: Re: Передача параметра в форму
Модератор
#
Re: Передача параметра в форму
В поддержку с данными доступа обратитесь, проще на месте посмотреть.
#
Re: Передача параметра в форму
HostCMS,


отправила доступ
#
Re: Передача параметра в форму
Благодаря супер поддержке со всем разобралась)) Выше приведен рабочий пример для интернет - магазина!

А этот для для интернет-магазина и информационных систем:

1. ссылка в шаблоны:

Интернет - магазин:
<li class="call-to-action"><a href="/send-order/?shop_item_id={@id}" class="theme_btn">Заказать</a></li>


Информационная система:
<li class="call-to-action"><a href="/send-order/?informationsystem_item_id={@id}" class="theme_btn">Заказать</a></li>


2. В форме создаете скрытое поле с названием элемента "shop_item_name".

3. 3. В коде формы получаете ID и если оно передано, то добавляете название в скрытое поле формы, для этого в коде ТДС формы блок
   if (!is_null(Core_Array::getPost($oForm->button_name)))
   {
      $Form_Controller_Show
         ->values($_POST + $_FILES)
         // 0 - html, 1- plain text
         ->mailType(Core_Array::get(Core_Page::instance()->libParams, 'mailType'))
         ->mailXsl(
            Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'notificationMailXsl'))
         )
         ->mailFromFieldName(Core_Array::get(Core_Page::instance()->libParams, 'emailFieldName'))
         ->process();
   }


на блок:
$aValues = $_POST + $_FILES;
   
   $shop_item_id = intval(Core_Array::getGet('shop_item_id'));
   if ($shop_item_id)
   {
      $oShop_Item = Core_Entity::factory('Shop_Item', $shop_item_id);
      $aValues['shop_item_name'] = $oShop_Item->name;
   }
  
      $informationsystem_item_id = intval(Core_Array::getGet('informationsystem_item_id'));
   if ($informationsystem_item_id)
   {
      $oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item', $informationsystem_item_id);
      $aValues['shop_item_name'] = $oInformationsystem_Item->name;
   }
   
   $Form_Controller_Show
         ->values($aValues);
  
   if (!is_null(Core_Array::getPost($oForm->button_name)))
   {
      $Form_Controller_Show
         //->values($_POST + $_FILES)
         // 0 - html, 1- plain text
         ->mailType(Core_Array::get(Core_Page::instance()->libParams, 'mailType'))
         ->mailXsl(
            Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'notificationMailXsl'))
         )
         ->mailFromFieldName(Core_Array::get(Core_Page::instance()->libParams, 'emailFieldName'))
         ->process();
   }
#
Re: Передача параметра в форму
и не забываем, то модуль ФОРМЫ доступен в версиях от 6тр...

интересно, а вот доп свойства передать - также легко сделать или месяц ждать от ТП ответа?))))

на джиквери все делается в течение 12 секунд))) еще и на бесплатной версии
Модератор
#
Re: Передача параметра в форму
volgastar,
у пользователя редакция Корпорация, в первом сообщении указано.

volgastar писал(а):
интересно, а вот доп свойства передать - также легко сделать или месяц ждать от ТП ответа?))))

у Вас есть претензии к работе ТП? Пожалуйста, обоснованную претензию на vasb@ubfgpzf.eh с номерами запросов и месяцем ответа, в противном случае все следующие голословные утверждения будут удаляться Хороших выходных.
Авторизация