バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2018/6/6 16:11
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 572
カートページでカート内商品の増減や削除ができない
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
居住地:
投稿: 1275
Re: カートページでカート内商品の増減や削除ができない
jsをデバッグされた際、必要な外部jsファイルはすべて読み込まれていますか?
他にエラーは表示されていないでしょうか?


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

h_tanaka
投稿日時: 2018/6/7 11:32
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 572
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
居住地:
投稿: 1275
Re: カートページでカート内商品の増減や削除ができない
実際に起こっている現象を見ていないので何とも言えませんが、
指定したイベントが実行されてないという事でしたので、jQueryが正常に読み込めていないのかと思いました。
※生成されたURLがlocalhostでしたので、ローカルPCで実行されているのかと思いました。
 jQueryはGoogleのCDNを利用していると思いますので、そこの通信が上手くいっていないのではないかと思いました。

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


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

h_tanaka
投稿日時: 2018/6/7 15:06
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 572
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ペイメント

統計情報

総メンバー数は33,294名です
総投稿数は87,800件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1796
4
yuh
1515
5
468
1275
6
red
1178
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
665
13 karin 656
14 sumida 641
15
homan
633
16
h_tanaka
572
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.