Drupal:简单的表单将数据转发到另一台服务器

时间:2011-02-16 12:28:24

标签: drupal drupal-6

我需要在Drupal网站上添加一个带有表单的页面。此表单应提交给另一台服务器(有一个php脚本可以在这样的服务器上接收它)。

因此,我不需要任何数据库更新,只需要将用户插入的数据转发到另一个域的页面。

你知道最简单的方法是什么吗?

感谢

PS。此外,我需要创建一个下拉菜单,其中包含国家/地区列表(以及每个国家/地区的区域)作为子菜单

4 个答案:

答案 0 :(得分:3)

我很惊讶没人提及hook_form_alter并将#action设置为外部网址。这将使表单直接发布到其他服务器,如果您可以控制它,您可以轻松地重定向回。比从服务器POST更容易。另一种方法是iframe另一个脚本并使用目标属性(在$form['#attributes']['target'] = 'the_iframe'中设置hook_form_alter)。然后你可以使用JS在提交后“移动”页面。将POST上传到iframe,您也可以查看该JS。 How do you post to an iframe?讨论了iframe和表单。

答案 1 :(得分:1)

在表单中,您可以将#action设置为您想要的任何网址。它会发布到该网址。如果您需要GET而不是POST,则还应设置#method

function my_form_builder() {
  $form['search'] = array(
    //..builds some form elements
  );

  $form[#action] = 'http://example.com';

  return $form;

}

答案 2 :(得分:0)

您可以使用因果验证材料创建一个常规的drupal表单,而不是将日期放入数据库,将其发送到另一个站点(通过post或get或其他)。

答案 3 :(得分:0)

要在自己的自定义表单实现中POST到外部URL,或者使用hook_form_alter()将另一个提交处理程序添加到现有表单,而不显示请求,则需要使用drupal_http_request()发送服务器端http请求。见:

http://www.drupaler.co.uk/blog/validating-submitting-forms-other-websites-drupal/428

要使用webform模块完成此操作,您需要上面学到的内容,如下所示:

  1. 在D6 / Webform< 3

    http://drupal.org/node/543674#comment-2499674

  2. 在Drupal 7 / Webform 3中

    http://www.midwesternmac.com/blogs/jeff-geerling/integrate-webform-3x-paypal