我在通过会话发送数据时遇到问题,因为我在validate()函数下的controller / checkout / shipping_address.php中定义变量时遇到了未定义变量的错误。 (结帐/ shipping_address /验证)。
$this->session->data['ship_date'] = $this->request->post['ship_date']; //<- line 102
在控制器/结帐/ shipping_method
中$ship_date = $this->session->data['ship_date'];
if(empty($ship_date)) echo "var empty";
$ship_date = explode("-", $ship_date);
$ship_date = $ship_date[0] . "/" . $ship_date[1] . "/" . $ship_date[2];
然后我做
$quote = $this->{'model_shipping_' . $result['code']}->getQuote($shipping_address, $ship_date);
同样是的,在model / shipping / fedex.php中我允许使用$ ship_date参数。然后我得到了。
无效的JSON:通知:未定义的索引:ship_date in /var/www/catalog/controller/checkout/shipping_address.php on line 102 [] parsererror 注意:未定义的索引: ship_date in /var/www/catalog/controller/checkout/shipping_address.php on 102 []
答案 0 :(得分:1)
您应该调试数组$this->session->data
和$this->request->post
。
您看到这些错误的原因是ship_date
和$this->session->data
中没有索引$this->request->post
。所以你得到Notice: Undefined index:
。
由于打印的通知,您之后输出的json无效。
答案 1 :(得分:1)
实际上,OpenCart只通过JSON进行通话。所以添加它会有所帮助。
$JSONarray = array("date" => $this->request->post['ship_date']);
$this->session->data['ship_date'] = json_encode($JSONarray);
如果您想使用它,
$JSONarray = $this->session->data['ship_date'];
$arr = json_decode($JSONarray, TRUE);
$Value = $arr['ship_date'];
我们必须制作数据JSON然后发送