2015-06-01 2 views
0

Я пытаюсь передать одну переменную с разных страниц продукта на страницу веб-формы. Каждая страница продукта имеет переменную сеанса, такую ​​как $_SESSION["product_name"] = "Product1";. Аналогично, на других страницах продукта есть $_SESSION["product_name"] = "Product2";$_SESSION["product_name"] = "Product3";Передать переменные с одной страницы на веб-форму в drupal

Мой вопрос заключается в том, как передать эти переменные на другую страницу веб-формы. Я использую модуль «WebForm», что я хочу, чтобы выполнить это должна быть <select> тега, и есть варианты, как

<select> 
    <option value="<?php echo $_SESSION["product_name"]; ?>" selected><? php echo $_SESSION["product_name"]; ?></option> 
    <option value="Product2">Product2</option> 
    <option value="Product3">Product3</option> 
    <option value="Product4">Product4</option> 
</select> 

Проблемы есть нет места для меня, чтобы поместить эти коды, есть любым способом вокруг этого или есть какой-либо модуль, который я могу использовать для этой проблемы?

ответ

1

Вы можете создать собственный модуль, а затем реализовать hook_form__alter()

Вы должны были бы найти идентификаторы WebForms, которые вы хотите настроить таргетинг.

Тогда:

function mymodule_form_webform1_alter(&$form, &$form_state) { 
    array_unshift($form['products']['#options'], array($_SESSION["product_name"] => $_SESSION["product_name"])); 
} 

или аналогичный

+0

К сожалению, почему-то не работает с кодами. Но вы напоминаете мне о создании настраиваемого модуля, и вы правы! Я создал настраиваемый модуль для создания пользовательского токена, а токен принимает значение сеанса. Я использую токен как значение по умолчанию, и он работает как шарм. спасибо – Jaaaaaaay

0

Это может быть способ передать значение сеанса значения параметра по умолчанию веб-форму. Я использую Drupal 7, WebForm 4. Значения сеанса на разных страницах продукта являются:

$_SESSION["j_product_name"] = "haha1"; 
$_SESSION["j_product_name"] = "haha2"; 

Сначала я создал собственный модуль, то .module часть (также необходимо создать .info):

<?php 
function jay_tokens_token_info() { 
    $types['jay_token'] = array(
    'name' => t("Jay Tokens"), 
    'description' => t("Jay custom tokens"), 
); 


    $jay_token['product_session'] = array(
    'name' => t("Product Name"), 
    'description' => t("product_name session value"), 
); 


    return array(
    'types' => $types, 
    'tokens' => array(
     'jay_token' => $jay_token, 
    ), 
); 
} 

/** 
* Implements hook_tokens(). 
*/ 
function jay_tokens_tokens($type, $tokens, array $data = array(), array $options = array()) { 

    $replacements = array(); 

    if ($type == 'jay_token') { 
    foreach ($tokens as $name => $original) { 
     switch ($name) { 
     case 'product_session': 
      $replacements[$original] = $_SESSION["j_product_name"]; 
     break; 

     } 
    } 
    } 

    return $replacements; 
} 
?> 

В WebForm выбрать опции, значение по умолчанию должно быть [jay_token:product_session] и варианты должны быть:

haha1|Product1 
haha2|Product2 
Смежные вопросы