2014-03-13 4 views
0

OC (아래 첨부 된 이미지)의 제품 페이지를 사용자 정의하고 있지만 모양이 좋았지 만 장바구니의 ajax가 작동하지 않아 제품을 장바구니에 추가 할 수 없습니다. "옵션"이 선택되지 않은 일반 오류입니다.Opencart의 Ajax가 작동하지 않습니다.

코드 : 위의 대한

<div class="widget"> 
<?php foreach ($options as $option) { ?> 
<?php if ($option['type'] == 'radio') { ?> 
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> 
    <div class="title"> 
    <h2><?php echo $option['name']; ?>:</h2> 
    </div> 
    <table > 
    <?php foreach ($option['option_value'] as $option_value) { ?> 
    <tr> 
     <td> 
     <label> 
     <input type="radio" name="option[<?php echo $option['option_id']; ?>]" value="<?php echo $option_value['option_value_id']; ?>" /> 
     <span style="width:40%;"><?php echo $option_value['name']; ?></span> 
     <?php if($option_value['quantity'] == 0) { ?> 
     <span style="width:20%;">Out of stock</span> 
     <?php } else { ?> 
     <span style="width:20%;"><?php echo $option_value['quantity']; ?> remaining</span> 
     <?php } ?> 
     <?php if ($option_value['price']) { ?> 
     <span style="width:10%;"><?php echo $option_value['prefix']; ?> <?php echo $option_value['price']; ?></span> 
     <?php } else { ?> 
     <span style="width:10%;"><?php echo $option_value['prefix']; ?> <?php echo $special; ?></span> 
     <?php } ?> 
     </label> 
     </td> 
    </tr> 
    <?php } ?> 
    </table> 
    </div> 
<?php } ?> 
<?php } ?> 
<div class="cart"> 
    <?php echo $text_qty; ?> 
    <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" /> 
    <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" /> 
    <input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" /> 
    <?php if ($minimum > 1) { ?> 
    <div class="minimum"> 
     <?php echo $text_minimum; ?> 
    </div> 
    <?php } ?> 
    </div> 

아약스 코드는 다음과 같습니다

<script type="text/javascript"><!-- 
$('#notification').hide(); 
$('#button-cart').bind('click', function() { 
    $.ajax({ 
url: 'index.php?route=checkout/cart/add', 
    type: 'post', 
data: $('input[type=\'text\'], input[type=\'hidden\'], input[type=radio]:checked'), 
    dataType: 'json', 
    success: function(json) { 
     $('.success, .warning, .attention, information, .error').remove(); 

     if (json['error']) { 
      if (json['error']['option']) { 
       for (i in json['error']['option']) { 
        $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); 
       } 
      } 
     } 

     if (json['success']) { 
       $('#notification').show(); 
      $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); 

      $('.success').fadeIn('slow'); 

      $('#cart-total').html(json['total']); 

      $('html, body').animate({ scrollTop: 0 }, 'slow'); 
     } 
    } 
     }); 
     }); 
     //--></script> 

이미지 :

https://dl.dropboxusercontent.com/u/26243182/oc-options.png

나는 FOL을 실행하는 경우 라디오 버튼의 내용을 알려주는 jQuery 스크립트가 있습니다.

$('input[type="radio"]').click(function(){ 
if ($(this).is(':checked')) 
{ 
    alert($(this).val()); 
} 

});

아마 간단한 죽은 뭔가를 놓친 거지하지만 정신 날 운전 있어요 :)

어떤 도움에 감사드립니다

+0

콘솔에서 ajax 응답을 확인 했습니까? –

+0

Firebug 콘솔의 아무 것도 없습니다. –

+0

누구든지 도와 드릴 수 있습니까? 그것은 단순한 무언가가 될 것이기 때문에 저를 미치게 만듭니다. 그러나 나는 그것을 해결할 수 없습니다! –

답변

0

아약스는 단순히 당신이 의미 지정된 옵션을 읽을 실패하면 응, 당신이 얻을 오류입니다 값이이입니다, 이것은 당신을 당신에게 맞는 하나가 될 것

'input[name=\'option[<?php echo $option['product_option_id']; ?>]\']:checked' 

난 다음의 일을 생각하는 시도하거나 적어도 안내 너무 실패하면 당신은 또한 input[type=]\'radio\']input[type=radio]을 변경해야합니다 같은 읽어되지 않는ajax code ofc.

+1

그것을 해결하지 못했습니다, 결국 오류를 발견했습니다. 기본으로 되돌아 가서 기본 테마에서 함수를 다시 작성하여 수정했습니다. 라디오 코드에 오류가있는 것처럼 보입니다. 그래서 나는 지금 진정시킬 수있다 : –

+0

'input [type = \ 'radio \']'도'input [type = "radio"]'도 전혀 필요하지 않고 단순히'input [type = radio]'를 사용할 때마다 작동 할 것이다. 'input [data-title = "이것은 일어나지 않아야 할 몇 가지 edgecase입니다.]"... – shadyyx

관련 문제