3

私が抱えている問題は、「配信方法」セクションで、Ajax が何らかの理由で検証に失敗していることです。

以下のコード (checkout/checkout.tpl から) では、BeforeSend 関数と complete 関数が起動していますが、成功した関数は起動していません。

「index.php?route=checkout/shipping_method/validate」がどこに設定されているか教えてもらえますか?

ありがとうございました

$('#button-shipping-method').live('click', function() {
   $.ajax({
      url: 'index.php?route=checkout/shipping_method/validate',
      type: 'post',
      data: $('#shipping-method input[type=\'radio\']:checked, #shipping-method textarea'),
      dataType: 'json',
      beforeSend: function() {
         $('#button-shipping-method').attr('disabled', true);
         $('#button-shipping-method').after('<span class="wait">&nbsp;<img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
      },   
      complete: function() {
         $('#button-shipping-method').attr('disabled', false);
         $('.wait').remove();
      },         
      success: function(json) {
         $('.warning, .error').remove();

         if (json['redirect']) {
            location = json['redirect'];
         } else if (json['error']) {
            if (json['error']['warning']) {
               $('#shipping-method .checkout-content').prepend('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

               $('.warning').fadeIn('slow');
            }         
         } else {
            $.ajax({
               url: 'index.php?route=checkout/payment_method',
               dataType: 'html',
               success: function(html) {
                  $('#payment-method .checkout-content').html(html);

                  $('#shipping-method .checkout-content').slideUp('slow');

                  $('#payment-method .checkout-content').slideDown('slow');

                  $('#shipping-method .checkout-heading a').remove();
                  $('#payment-method .checkout-heading a').remove();

                  $('#shipping-method .checkout-heading').append('<a>Modify &raquo;</a>');   

               },
               error: function(xhr, ajaxOptions, thrownError) {
                  alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
               }
            });               
         }
      },
      error: function(xhr, ajaxOptions, thrownError) {
         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
      }
   });   
});
4

2 に答える 2