我需要在Drupal网站上添加一个带有表单的页面。此表单应提交给另一台服务器(有一个php脚本可以在这样的服务器上接收它)。
因此,我不需要任何数据库更新,只需要将用户插入的数据转发到另一个域的页面。
你知道最简单的方法是什么吗?
感谢
PS。此外,我需要创建一个下拉菜单,其中包含国家/地区列表(以及每个国家/地区的区域)作为子菜单
答案 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模块完成此操作,您需要上面学到的内容,如下所示:
在D6 / Webform< 3
在Drupal 7 / Webform 3中
http://www.midwesternmac.com/blogs/jeff-geerling/integrate-webform-3x-paypal