![](/img/trans.png)
[英]Need Page 1 webform to pass variables into the src portion of an iframe located in Page 2
[英]Pass variables from one page to a webform in drupal
我正在嘗試將一個變量從不同的產品頁面傳遞到Webform頁面。 每個產品頁面都有一個會話變量,例如$_SESSION["product_name"] = "Product1";
。 同樣,其他產品頁面具有$_SESSION["product_name"] = "Product2";
$_SESSION["product_name"] = "Product3";
我的問題是如何將這些變量傳遞到另一個Webform頁面。 我正在使用“ 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()
您將需要找到要定位的網絡表單的ID。
然后:
function mymodule_form_webform1_alter(&$form, &$form_state) {
array_unshift($form['products']['#options'], array($_SESSION["product_name"] => $_SESSION["product_name"]));
}
或類似
這可能是將會話值傳遞到Webform選項默認值的一種方法。 我正在使用Drupal 7,Webform4。不同產品頁面上的會話值為:
$_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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.