Favorite.phpからお気に入り商品削除はうまくできますが、別のページで同じjavascriptメッソドなのに、削除できない障害が発生しました。
ここは別のページ(例:hoge.php)で、お気に入り商品削除できない障害の解決方法をメモーします。
Favorite.tplファイルで削除のコード
<a href="javascript:eccube.setModeAndSubmit('delete_favorite','product_id','<!--{$product_id|h}-->');">
Eccube.jsでsetModeAndSubmitメッソドを見てみると、Action名称は指定していないため、デフォルトActionを使っている。
即ち、favorite.phpへサブミットする。
しかし、別のページhoge.phpから「お気に入り商品削除」するとき、favorite.tplでの削除方法をそのまま使ったら、
デフォルトActionはhoge.phpとなり、削除実行したら、hoge.phpへサブミットしてしまう。もちろん削除できません。
そのため、favorite.tplでのjavascriptを使えなくて、新たな「お気に入り商品削除」メッソドを作成します。
以下は僕作成した「お気に入り商品削除のJavascriptメッソド」です。
eccube.changeActionSetModeAndSubmit = function(act, form, mode, keyname, keyid) {
var formElement = eccube.getFormElement(form);
formElement.attr("action", act);
document.form1.mode.value = mode;
if(keyname !== undefined && keyname !== "" && keyid !== undefined && keyid !== "") {
document.form1[keyname].value = keyid;
}
document.form1.submit();
};
Hoge.tplでの削除コードは下記通り:
<a href="javascript:eccube.changeActionSetModeAndSubmit('favorite.php','form1','delete_favorite','product_id','<!--{$product_id|h}-->');">
削除
</a>
以上、ECCUBEでお気に入り商品削除できない障害の解決方法です。
♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。
zanmai @2016年03月31日
» ①②③④の順で設定できるはず。…