【问题标题】:How to override the review_cart form in ubercart如何覆盖 ubercart 中的 review_cart 表单
【发布时间】:2011-02-05 06:24:36
【问题描述】:

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

<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 行)。

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

【问题讨论】:

    标签: forms drupal drupal-6 ubercart


    【解决方案1】:

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

    $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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多