バージョン選択

フォーラム

メニュー

オンライン状況

91 人のユーザが現在オンラインです。 (75 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 90
JOP もっと...

サイト内検索

質問 > フロント機能 > カートページでカート内商品の増減や削除ができない

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2018/6/6 16:11
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
カートページでカート内商品の増減や削除ができない
EC-CUBE3.0.16

独自のデザインテンプレートを使用してサイト全体のカスタマイズを行っています。
カートページにおいて、「+」「-」「x」をクリックするとエラーになってしまいます。

■「x」にて削除しようとしたときのエラーメッセージ
MethodNotAllowedHttpException in RouterListener.php line 163:
No route found for "GET /cart/remove/10": Method Not Allowed (Allow: PUT)

エラーメッセージから察するにPUT送信しなければならないのにGET送信してしまっているようです。
jsをデバッグしてみたところ、function.js ファイル自体の読み込みは行われているようですが、function.js 内で定義されているクリックイベントが呼ばれていないようです。

原因わかりますでしょうか?

app/template/test/Cart/index.twig
<a href="{{ url('cart_remove', {'productClassId': ProductClass.id }) }}" {{ csrf_token_for_anchor() }} data-method="put" data-message="カートから商品を削除してもよろしいですか?">
  <img src="{{ app.config.front_urlpath }}/project/img/common/ico_x.png" alt="x">
</a>


生成されたHTML
<a href="http://localhost/EC-CUBE/toebisu/html/index_dev.php/cart/remove/10" token-for-anchor="3qDPUZEKYop6-B5fWDKY9rL7FSg4IA35-xyPb12uSHU" data-method="put" data-message="カートから商品を削除してもよろしいですか?">
    <img src="/EC-CUBE/toebisu/html/template/test/project/img/common/ico_x.png" alt="x">
</a>


html/template/test/js/function.js
$(function () {
    var createForm = function (action, data) {
        var $form = $('<form action="' + action + '" method="post"></form>');
        for (input in data) {
            if (data.hasOwnProperty(input)) {
                $form.append('<input name="' + input + '" value="' + data[input] + '">');
            }
        }
        return $form;
    };

    $('a[token-for-anchor]').click(function (e) {    // ★ここが呼ばれていない
        e.preventDefault();
        var $this = $(this);
        var data = $this.data();
        if (data.confirm != false) {
            if (!confirm(data.message ? data.message : '削除してもよろしいですか?')) {
                return false;
            }
        }

        var $form = createForm($this.attr('href'), {
            _token: $this.attr('token-for-anchor'),
            _method: data.method
        }).hide();

        $('body').append($form); // Firefox requires form to be on the page to allow submission
        $form.submit();
    });
});

468
投稿日時: 2018/6/7 11:14
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: カートページでカート内商品の増減や削除ができない
jsをデバッグされた際、必要な外部jsファイルはすべて読み込まれていますか?
他にエラーは表示されていないでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

h_tanaka
投稿日時: 2018/6/7 11:32
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: カートページでカート内商品の増減や削除ができない
468様
ご回答ありがとうございます。

はい、default_frame.twig は default からコピーしたものを使用しているのでjsファイルはすべて読み込まれていると思われます。
画面遷移前後にjsエラーは発生していません。
画面遷移後は次のエラーが発生しています。

■エラー2/2
MethodNotAllowedHttpException in RouterListener.php line 163:
No route found for "GET /cart/up/10": Method Not Allowed (Allow: PUT)

■エラー1/2
MethodNotAllowedException in UrlMatcher.php line 97:


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

468
投稿日時: 2018/6/7 14:47
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: カートページでカート内商品の増減や削除ができない
実際に起こっている現象を見ていないので何とも言えませんが、
指定したイベントが実行されてないという事でしたので、jQueryが正常に読み込めていないのかと思いました。
※生成されたURLがlocalhostでしたので、ローカルPCで実行されているのかと思いました。
 jQueryはGoogleのCDNを利用していると思いますので、そこの通信が上手くいっていないのではないかと思いました。

特にエラーが出ていないのであれば、残念ながら心当たりがない状況です。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

h_tanaka
投稿日時: 2018/6/7 15:06
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: カートページでカート内商品の増減や削除ができない
実行環境はローカルPCで、jQueryはGoogleのAPIから取得しています。
読み込むjQueryのバージョンは変更していましたが、元々のバージョンを呼ぶように戻しても状況変わりませんでした。

<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="{{ app.config.front_urlpath }}/js/vendor/jquery-1.11.3.min.js?v={{ constant('Eccube\\Common\\Constant::VERSION') }}"><\/script>')</script>


上記jQuery読み込みのコードをすべて削除してみたところjsエラーがバンバン出てきたので、jQueryの読み込み自体はうまくいっているようです。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,294名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.