使用Ajax更新带有会话变量的“添加到购物车”表单操作

时间:2013-11-12 11:55:04

标签: ajax magento session session-variables

我在产品详细信息页面上有一个下拉列表,我可以从中选择一个选项,并且需要使用Ajax在会话变量中设置此选项的值。这部分工作正常。 我现在要做的是将此会话变量附加到“添加到购物车”表单操作。

这就是表单操作代码现在的样子

<form action="<?php echo $this->getSubmitUrl($_product,array('session'=>$getselected_optionvalue)) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?> class="form">

如果我刷新页面,表单操作会使用正确的值进行更新。如何在不刷新或导航页面的情况下更新它?

1 个答案:

答案 0 :(得分:2)

您可以尝试更改ajax调用的success:函数上的表单操作。

如果你正在使用jQuery:

$.ajax({
  url: 'path/to/url',
  ... // Other options here
  success: function(data) {
    $('#myform').attr('action', data.newAction);
  }
});

您只需在控制器中设置数据:

$data = array(
  'newAction' => 'new/form/action/here',
  ... // Other data here
);

$jsonData = json_encode($data);

$this->getResponse()->setHeader('Content-type', 'application/json');
$this->getResponse()->setBody($jsonData);

return $jsonData;

确保将Content-type标题设置为application/json