Я пытаюсь передать одну переменную из разных страниц продукта на страницу веб-формы. Каждая страница продукта имеет переменную сеанса, такую как $_SESSION["product_name"] = "Product1";
, Точно так же другие страницы продукта имеют $_SESSION["product_name"] = "Product2";
$_SESSION["product_name"] = "Product3";
Мой вопрос заключается в том, как передать эти переменные на другую страницу веб-формы. Я использую модуль «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>
Проблема в том, что мне некуда разместить эти коды, есть ли способ обойти это или есть какой-нибудь модуль, который я могу использовать для этой проблемы?
Вы можете создать собственный модуль и затем реализовать hook_form__alter ()
Вам нужно будет найти идентификаторы веб-форм, на которые вы хотите настроить таргетинг.
Затем:
function mymodule_form_webform1_alter(&$form, &$form_state) {
array_unshift($form['products']['#options'], array($_SESSION["product_name"] => $_SESSION["product_name"]));
}
или похожие
Это может быть способ передачи значения сеанса в значение параметра веб-формы по умолчанию. Я использую 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;
}
?>
В опциях выбора веб-формы значение по умолчанию должно быть [jay_token:product_session]
и варианты должны быть:
haha1|Product1
haha2|Product2