バージョン選択

フォーラム

メニュー

オンライン状況

48 人のユーザが現在オンラインです。 (33 人のユーザが フォーラム を参照しています。)
登録ユーザ: 6
ゲスト: 42
kggh lyly zakey h_tanaka actact rakesh23 もっと...

サイト内検索

プラグイン > 開発について > ajaxの保存処理でエラー

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2018/1/16 18:12
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1634
オンライン
ajaxの保存処理でエラー
EC-CUBE3.0.15

作成中のプラグインで、ajaxでエラーになってしまいます。

注文履歴詳細ページにおいて、プルダウンで選択した後に保存ボタンを押すとajaxから保存処理を呼ばれるような実装をしています。
保存処理には成功しており、ログにも「注文履歴保存完了」が出力されているのですが、保存処理後に「更新に失敗しました。入力内容を確認してください。」のアラートが表示されてしまいます。

ajaxでエラーになる原因、または原因を探る方法がわかりますでしょうか?

history_test.twig
<script>
$(document).ready(function() {
    $('#save').click(function() {
        var postData = {};
        $("#test_form").find("select").each(function() {
            postData[$(this).attr("id")] = $(this).val();
        });
        $.ajax({
            type: "POST",
            url: "{{ url('mypage_history_test') }}",
            data: postData,
            dataType : "json",
        }).done(function(data){
            return true;
        }).fail(function(data){
            alert('更新に失敗しました。入力内容を確認してください。');    // ★ このアラートが表示されてしまう
            return false;
        }).always(function(data) {
        });
    });
});
</script>


TestController.php
class HistoryController extends AbstractController
{
    public function save(Application $app, Request $request)
    {
        if (!$request->isXmlHttpRequest()) {
            log_warning('不正アクセス');
            throw new BadRequestHttpException();
        }
        try {
            log_info('注文履歴保存開始');
            $plgOrderDetailChoiceIds = $request->request->all();
            foreach ($plgOrderDetailChoiceIds as $formId => $val) {
                $ItemChoice = $app['eccube.plugin.test.repository.test']->find($val);
                if (!$ItemChoice) {
                    log_info('存在しません。');
                    return $app->json(array(), 500);
                }
                $id = substr($formId, strlen('plg_test_order_detail_'));
                $OrderDetailTest = $app['eccube.plugin.test.repository.order_detail_test']->find($id);
                if ($val != $OrderDetailTest->getItemChoiceId()) {
                    $OrderDetailTest->setItemChoiceId($val);
                    $OrderDetailTest->setItemChoiceName($ItemChoice->getName());
                    $OrderDetailTest->setPrice($ItemChoice->getPrice());
                    $app['orm.em']->persist($OrderDetailTest);
                }
            }
            $app['orm.em']->flush();         // ★ 保存処理は実行されている
            log_info('注文履歴保存完了');    // ★ このログも出力されている
            return $app->json(array());
        } catch (\Exception $e) {
            log_error('予期しないエラー', array($e->getMessage()));
            $app['monolog']->error($e);
            return $app->json(array(), 500);
        }
    }
}


TestServiceProvider.php
        $app->match('/mypage/history/test',
                '\Plugin\Test\Controller\HistoryController::save'
            )
            ->bind('mypage_history_test');


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

h_tanaka
投稿日時: 2018/1/17 9:14
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1634
オンライン
Re: ajaxの保存処理でエラー
追記です。

ajaxのfail時にエラーをアラート表示してみました。
        }).fail(function(jqXHR, textStatus, errorThrown) {
            alert("XMLHttpRequest : " + jqXHR.status + " ; textStatus : " + textStatus + " ; errorThrown : " + errorThrown);
            return false;


結果は、次のように表示されました。
XMLHttpRequest : 0 ; textStatus : error ; errorThrown :

しかしまだ原因がわかりません。。


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

h_tanaka
投稿日時: 2018/1/17 10:48
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1634
オンライン
Re: ajaxの保存処理でエラー
本件、ajaxを使用せず、プラグインのコントローラーを呼んで処理後に元のページにリダイレクトするという対応で問題を回避しました。


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

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1634
8
red
1569
9
mcontact
1261
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.