我们有一个Magento商店(v1.9.2),我希望能够通过url添加捆绑产品,并在查询字符串中添加选项。
它几乎正常工作......但问题是每个捆绑选项都有几个需要选择的项目,但查询字符串只会选择其中一个。
前端选项的示例屏幕截图: https://www.dropbox.com/s/80s1pjl7nfmum8t/Screen%20Shot%202016-04-30%20at%2010.20.02.png?dl=0
网址示例:
/结帐/购物车/添加/产品/ 329 /数量/ 1 / bundle_option [174] = 1531&安培; bundle_option [174] = 1532&安培; form_key = rGK59KHglVmkjdRg
这应该在捆绑选项174中选择两个项目,但它只选择一个。
有人可以帮忙吗,我不知道我是否遗漏了有关网址结构的内容,如果代码需要修改的话!
答案 0 :(得分:1)
<强> TL; DR 强>
您缺少一些 []
这是get参数中数组的基本用法。
当您说bundle_option[174]=1531&bundle_option[174]=1532
时,您实际上是说参数174
的密钥bundle_option
是1531
,那么您可以立即覆盖密钥174
参数bundle_option
的{{1}}是<{1}}。
您可以在任何基本的PHP脚本中尝试:
我们假设我们调用包含此代码的1532
some.php?bundle_option[174]=1531&bundle_option[174]=1532
它会回应:
<?php var_dump($_GET);
当你需要什么,以及Magento期望你拥有的复选框选项中,你可以选择多项选择时,是一个数组数组。
所以使用与上面完全相同的文件:
如果我们调用some.php:1:
array (size=1)
'bundle_option' =>
array (size=1)
174 => string '1532' (length=4)
,那将为您提供一个数组数组:
some.php?bundle_option[174][]=1531&bundle_option[174][]=1532
如果你真的有一个Magento控制器进行测试,你也可以在那里使用一个动作并使用
查看查询参数的结果some.php:1:
array (size=1)
'bundle_option' =>
array (size=1)
174 =>
array (size=2)
0 => string '1531' (length=4)
1 => string '1532' (length=4)