我在产品详细信息页面上有一个下拉列表,我可以从中选择一个选项,并且需要使用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">
如果我刷新页面,表单操作会使用正确的值进行更新。如何在不刷新或导航页面的情况下更新它?
答案 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