0

商品詳細ページにオプションを選択できるドロップダウンがあり、このオプションの値は 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">

ページを更新すると、フォーム アクションが正しい値で更新されます。ページを更新したり、別のページに移動したりせずに更新するにはどうすればよいですか?

4

1 に答える 1

2

success:ajax 呼び出しの関数でフォーム アクションを変更してみてください。

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

于 2013-12-19T01:59:18.893 に答える