1

我需要编写一个将订单数据发送到电子支付服务的模块,例如贝宝。他们需要从具有如下元素的表单提交数据(注意重复名称):

<input name="ORDER_PNAME[]" type="hidden" value="CD Player">
<input name="ORDER_PNAME[]" type="hidden" value="Geanta voiaj 2L">

这使得通过简单地在 module_form_alter() 中编辑 $form 来覆盖表单是不可能的,因为“ORDER_PNAME[]”将是 $form 中的重复键。

所以我需要绕过整个drupal表单处理系统。我查看并发现我可以用纯 html 表单数据覆盖 uc_cart_checkout_review 中的 $form 变量(参见http://api.ubercart.org/api/function/uc_cart_checkout_review/2第 4 行)。

这样做的正确方法是什么?

4

1 回答 1

0

关于解决方法的权利:
您可以使用标记元素添加必要的表单元素:

$form['your_name'] = array(
    '#type'  => 'markup',
    '#value' => '<input name="ORDER_PNAME[]" type="hidden" value="CD Player">
                 <input name="ORDER_PNAME[]" type="hidden" value="Geanta voiaj 2L">',
);


如果您不需要将用户重定向到该电子支付服务页面,只需发送数据,您可以使用 curl 发布必要的数据。一个相关问题:Auto Submitting a form (cURL)

于 2010-04-08T10:55:52.000 回答