我的格式如下:
<form name="cart_quantity" action="https://www.example.com/product_info.php?action=add_product" method="post" onsubmit="return validate(); ">
<input type="hidden" name="products_id" value="226" />
<input type="hidden" name="final_sale" value="final_sale" />
</form>
products_id已正确传递到购物车页面。但是,我要添加的最终销售价值却没有。
表单动作功能:
$goto = shopping_cart.php;
$parameters = array('action', 'cPath', 'products_id', 'pid');
case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
$attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id'])) + $HTTP_POST_VARS['cart_quantity'], $HTTP_POST_VARS['id']);
}
tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
break;
我尝试更改操作以包含final_sale值(我认为这是不必要的):
case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
$attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
$final_sale = isset($HTTP_POST_VARS['final_sale']) ? $HTTP_POST_VARS['final_sale'] : '';
$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id'])) + $HTTP_POST_VARS['cart_quantity'], $HTTP_POST_VARS['id']);
}
tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
break;
这也不起作用。
在shopping_cart.php中,我只是试图像这样回显该值,以查看它是否通过,但是我什么也没得到:
echo $_GET['final_sale'];
if (tep_not_null( ($_GET['final_sale']) )) {
echo "finalsale";
}
答案 0 :(得分:1)
您提供的代码示例存在三个问题:
$HTTP_POST_VARS
不是superglobal,因此要使用它,您需要使用global
关键字对其进行声明。$HTTP_POST_VARS
也已弃用,您应该使用$_POST
变量insetead。 $_POST
是超全局性的,因此您不需要使用global
关键字。$_GET
变量,但是您创建的表单被声明为POST
。要使代码正常工作,您需要将所有$HTTP_POST_VARS
和$_GET
变量替换为$_POST
。