Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Не рилииет предупрежгдение в опциях


Recommended Posts

Здравствуйте. Сгделал модальное оформление заказа. Если строки не заполнены то появляется ошибка.  А вот опции не рилииют. Если сгделать их обязательными все равно пропускает заказ на оформление.    Если вывести опцию datatime именно она рилииет.

 

Файл вывода в шаблон :  

 

 <div id="zapis">

		     <?php foreach ($opvals as $opval) { ?>
			
                    <?php if ($opval['type'] == 'select') { ?>
					<div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
					<label class="control-label2"><?php echo $opval['name']; ?></label>
						<?php if($opval['top']) { ?><?php } ?>
                            <label class="control-label"  for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <select  name="op[<?php echo $opval['product_op_val_id']; ?>]" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2">
                                <option value=""><?php echo $text_select; ?></option>
                                <?php foreach ($opval['value'] as $op_value) { ?>
                                <option value="<?php echo $op_value['option_value_id']; ?>"><?php echo $op_value['name']; ?></option>
                                <?php } ?>
                            </select>
                        </div>
						
              				   <?php } ?>
                    
                    <?php if ($opval['type'] == 'radio') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2 "><?php echo $opval['name']; ?></label>
                            <div id="input-option<?php echo $opval['product_op_val_id']; ?>">
                                <?php foreach ($opval['value'] as $op_value) { ?>
                                <div class="radio">
                                    <label>
                                        <input type="radio" name="op[<?php echo $opval['product_op_val_id']; ?>]" value="<?php echo $op_value['option_value_id']; ?>" />
                                        <?php if ($op_value['image']) { ?>
                                            <img src="<?php echo $op_value['image']; ?>" alt="<?php echo $op_value['name']; ?>" class="img-thumbnail" /> 
                                        <?php } ?>                    
                                        <?php echo $op_value['name']; ?>
                                    </label>
                                </div>
                                <?php } ?>
                            </div>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'checkbox') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2"><?php echo $opval['name']; ?></label>
                            <div id="input-option<?php echo $opval['product_op_val_id']; ?>">
                                <?php foreach ($opval['value'] as $op_value) { ?>
                                    <div class="checkbox">
                                        <label>
                                            <input type="checkbox" name="op[<?php echo $opval['product_op_val_id']; ?>][]" value="<?php echo $op_value['option_value_id']; ?>" />
                                            <?php if ($op_value['image']) { ?>
                                            <img src="<?php echo $op_value['image']; ?>" alt="<?php echo $op_value['name']; ?>" class="img-thumbnail" /> 
                                            <?php } ?>
                                            <?php echo $op_value['name']; ?>
                                        </label>
                                    </div>
                                <?php } ?>
                            </div>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'text') { ?>
                        <?php if(($opval['ogr'] > 0) && ($opval['mas'])) { ?>
                            <input type="hidden" name="q" value="1" data-qq="<?php echo $opval['ogr']; ?>" />
                        <?php } ?> 
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2" for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <input type="text" name="op[<?php echo $opval['product_op_val_id']; ?>]" value="" placeholder="<?php echo $opval['text']; ?>" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2" <?php if($opval['top']) { ?>data-validate<?php } ?> />
                        </div>
                        <?php if($opval['ogr'] > 0) { ?><?php } ?> 
                        <?php if($opval['mas']) { ?>
                            <div class="form-group hh-repeatable-field js-repeatable-field__prayer-names-data">
                                <a href="javascript:void(0)" class="hh-repeatable-field__add-button hh-repeatable-field__add-button-left-margin js-repeater__add-button"><i class="fa fa-plus"></i> Добавить имя</a>
                            </div>
                        <?php } ?>    
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'textarea') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2"   for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <textarea name="op[<?php echo $opval['product_op_val_id']; ?>]" rows="5" placeholder="<?php echo $opval['text']; ?>" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2"></textarea>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'file') { ?>
					
					
					
					
					
                
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'date') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label"   for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <div class="input-group date">
                                <input type="text" name="op[<?php echo $opval['product_op_val_id']; ?>]" value="" data-date-format="YYYY-MM-DD" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2" <?php if($opval['top']) { ?>data-validate<?php } ?> />
                                <span class="input-group-btn">
                                    <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
                                </span>
                            </div>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'datetime') { ?>
                
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'time') { ?>
                
                    <?php } ?>
                <?php } ?>
                <input type="hidden" name="quantity" value="1" />
                <input type="hidden" name="product_id" value="<?php echo $product_id; ?>" />
                <div id="collapse-payment-method"></div>
                
                <div class="buttons">
                    <div class="pull-center" style="text-align: center;">
                        <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-hoka btn-lg">Отправить</button>
                        <button type="button" id="button-wishlist" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-hoka btn-lg">В избранное</button>
                        <input type="hidden" name="s" id="sys" value="0" />
                    </div>
                </div>
            </div>

 

 

Вот JS для вывода ошибки: 

 

$('#button-cart').on('click', function() {
    $('.alert-success, .alert-danger').remove();
    $('#sys').val('1');
    var field = [];
    
			$("#product").find("input[data-validate]").each(function() {
				field.push('input[data-validate]');
                var value = $(this).val();
         
                for(var i=0;i<field.length;i++) {
                    if( !value ) {
                        $('#sys').val('0');
                        
                        $(this).addClass('some-form__line-required');
                        setTimeout(function() {
                            $(this).removeClass('some-form__line-required')
                        }.bind(this),2000);
                    }
                }
            ;    
		   });
if($("input").is('[name=\'q\']')) {		   
q = Number($('#product input[name=\'q\']').val());
} else {
q = 1;
}
g = q - 1;
t = q;

if(g != 0) {
   for (i = 1; i < g; i++) {
       zxc = $('#product input[name=\'op[d' + i + ']\']').val();
       if(zxc == '') {
           $('#product input[name=\'op[d' + i + ']\']').remove();
           t = t - 1;
        }
   }
}
eklmn = $('#sys').val();		   
if(eklmn != 0) {
	$.ajax({
		url: 'index.php?route=checkout/cart/add&q=' + t,
		type: 'post',
		data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
		dataType: 'json',
		beforeSend: function() {
			$('#button-cart').button('loading');
		},
		complete: function() {
			$('#button-cart').button('reset');
		},
		success: function(json) {
			$('.alert, .text-danger').remove();
			$('.form-group').removeClass('has-error');

			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						var element = $('#input-option' + i.replace('_', '-'));

						if (element.parent().hasClass('input-group')) {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						} else {
							element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						}
					}
				}

				if (json['error']['recurring']) {
					$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
				}
				
				if (json['error']['product']) {
					$('.breadcrumb').after('<div class="text-danger">' + json['error']['product'] + '</div>');
				}
				
				
				
				 for (i in json['error']) {
          var element = $('#input-payment-' + i.replace('_', '-'));

          if ($(element).parent().hasClass('input-group')) {
            $(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
          } else {
            $(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
          }
        }

				// Highlight any found errors
				$('.text-danger').parent().addClass('has-error');
			}

			if (json['success']) {
				$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');

				$('#cart > ul').load('index.php?route=common/cart/info ul li');
				$.ajax({
                    url: 'index.php?route=product/form/payment',
                    dataType: 'html',
                    success: function(html) {
                        $('#zapis').html(html);
                        $('.user').css('display','block');
                    },
                    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);
        }
	});
	} else {
	    $('#collapse-payment-method').html('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> Есть не заполненые поля ! </div>');
	}
});

 

 

Помогите ребяи а то замулился уже. 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.