【问题标题】:Getting value from clean URL into a webform hidden field in Drupal 7从干净的 URL 获取价值到 Drupal 7 中的网络表单隐藏字段
【发布时间】:2013-10-29 21:52:04
【问题描述】:

我包含一个网络表单,如果用户对工作感兴趣,他们将在工作列表页面上填写该表单。职位列表页面本身是根据职位搜索的结果从自定义模块创建的,我包括这样的网络表单:

render(node_view(node_load(363), 'full', NULL));

其中 363 是网络表单 ID。所以我试图弄清楚如何至少将工作编号传递到网络表单中。我知道我可以编辑网络表单以包含一个隐藏字段,我可以在其中从 %get[key] 之类的 URL 中获取值,但我使用的是干净的 URL,因此我在 URL 中没有特定的键,例如 www.example.com/ jobs?job_number=1234 我可以在哪里获取“job_number”。我的实际 URL 如下所示:http://www.example.com/job-board/view/41904 所以我需要在我的网络表单中获取 41904。我怎样才能做到这一点?我可以在我的网络表单隐藏字段中使用特殊标记,还是在我的自定义模块中以某种方式将工作编号传递给网络表单,当我去工作详细信息页面上显示它时?

【问题讨论】:

    标签: drupal drupal-7 drupal-modules drupal-webform


    【解决方案1】:

    好的,所以我想出了这个。所以看起来就像在我调用我的网络表单之前,我实际上可以设置一个 $_GET 参数,它将传递给网络表单。所以我在我的自定义模块中这样做了:

    // send job_number to webform via $_GET
    $_GET['job_number'] = $job_number;
    render(node_view(node_load(363), 'full', NULL));
    

    现在在我的网络表单中,我添加了一个隐藏的表单字段,其中 %get[job_number] 作为默认值,这很有效。

    【讨论】:

      【解决方案2】:

      你可以使用arg()获取所有参数;

      试试

      echo "<pre>";
      print_r(arg());
      echo "</pre>";
      

      你可以通过echo arg(2);得到它

      【讨论】:

      • 实际上,这是从某处代码中的干净 URL 访问参数的好方法,但这对我没有帮助,因为我需要能够从 webform 隐藏字段访问它。只是为了好玩,我尝试将 %arg[2] 作为默认值,但它不起作用,所以我仍然需要在 $_GET 变量中传递作业编号。
      • 我刚刚意识到我在原来的帖子中不是很清楚。实际上,我已经在渲染 web 表单的模块中处理了 job_number。我不需要从 URL 中获取它。我只是想弄清楚如何将该工作编号传递给网络表单,因为据我所知,我可以在网络表单默认值字段中使用的唯一标记是 %get[key] 并且我使用的是干净的 URL . %arg[2] 本来不错,但这不起作用。所以现在,我使用的以下方法似乎有效。感谢您告知我有关 arg(2) 的信息。我不知道你能做到!
      猜你喜欢
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      相关资源
      最近更新 更多