Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вместо цены получаю undefined


Recommended Posts

На странице товара есть скрипт который обновляет цену товара. Все работает хорошо.

вот сам скрипт (на странице товара работает):
 

Прихований текст
<script type="text/javascript"><!--
					$(document).ready(function(){
						if (typeof numeric !== 'undefined' && $.isFunction(numeric))
							$(".pso-width-input.form-control, .pso-height-input.form-control").numeric();
							
						$(".pso-width-input").keyup(function(){ 
							var width = $(this).val();
							if(!isNaN(width) && width != '') //is number
							{
								var proportionalSizeWidth = $(this).parents('.form-group').find('.proportional_size_width').val();
								var proportionalSizeHeight = $(this).parents('.form-group').find('.proportional_size_height').val();
								
								if(!isNaN(proportionalSizeWidth) 
									&& !isNaN(proportionalSizeHeight)
									&& proportionalSizeWidth != ''
									&& proportionalSizeHeight != ''
								)
								{
									var height = Math.round(width / proportionalSizeWidth * proportionalSizeHeight * 100) / 100;
									$(this).parents('.form-group').find('.pso-height-input').val(height);
								}
							}
							
							updatePriceBySize();
						});
						
						$(".pso-height-input").keyup(function(){					
							var height = $(this).val();
							if(!isNaN(height) && height != '') //is number
							{
								var proportionalSizeWidth = $(this).parents('.form-group').find('.proportional_size_width').val();
								var proportionalSizeHeight = $(this).parents('.form-group').find('.proportional_size_height').val();
								
								if(!isNaN(proportionalSizeWidth) 
									&& !isNaN(proportionalSizeHeight)
									&& proportionalSizeWidth != ''
									&& proportionalSizeHeight != ''
								)
								{
									var width = Math.round(height / proportionalSizeHeight * proportionalSizeWidth * 100) / 100;
									$(this).parents('.form-group').find('.pso-width-input').val(width);
								}
							}
							
							updatePriceBySize();
						});
						
						$("input[name='quantity']").keyup(function(){ 
							updatePriceBySize();
						});
						
						$("#product").on('change', function(){ 
							updatePriceBySize();
						});
						
						function updatePriceBySize()
						{
							$.ajax({
								url: 'index.php?route=product/product/add',
								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',
								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>');
										}
										
										// Highlight any found errors
										$('.text-danger').parent().addClass('has-error');
									}
									
									else {
										
										$('#total_price_ex_tax').html(json['total_extax']);
										$('.product-price, #total_price').html(json['total']);
									}	
								}
							});
						}
					});
				//--></script>

 



а вот измененный скрипт со страницы категории (получаю неизвестность):
 

Прихований текст
<script>
    $(document).ready(function(){
        if (typeof numeric !== 'undefined' && $.isFunction(numeric))
            $(".act .option_lan .pso-width-input.form-control, .act .option_lan .pso-height-input.form-control").numeric();
            
        $(".act .option_lan .pso-width-input").keyup(function(){ 
            var width = $(this).val();
            if(!isNaN(width) && width != '') //is number
            {
                var proportionalSizeWidth = $(this).parents('.form-group').find('.proportional_size_width').val();
                var proportionalSizeHeight = $(this).parents('.form-group').find('.proportional_size_height').val();
                
                if(!isNaN(proportionalSizeWidth) 
                    && !isNaN(proportionalSizeHeight)
                    && proportionalSizeWidth != ''
                    && proportionalSizeHeight != ''
                )
                {
                    var height = Math.round(width / proportionalSizeWidth * proportionalSizeHeight * 100) / 100;
                    $(this).parents('.form-group').find('.pso-height-input').val(height);
                }
            }
            
            updatePriceBySize();
        });
        
        $(".act .option_lan .pso-height-input").keyup(function(){                    
            var height = $(this).val();
            if(!isNaN(height) && height != '') //is number
            {
                var proportionalSizeWidth = $(this).parents('.form-group').find('.proportional_size_width').val();
                var proportionalSizeHeight = $(this).parents('.form-group').find('.proportional_size_height').val();
                
                if(!isNaN(proportionalSizeWidth) 
                    && !isNaN(proportionalSizeHeight)
                    && proportionalSizeWidth != ''
                    && proportionalSizeHeight != ''
                )
                {
                    var width = Math.round(height / proportionalSizeHeight * proportionalSizeWidth * 100) / 100;
                    $(this).parents('.form-group').find('.pso-width-input').val(width);
                }
            }
            
            updatePriceBySize();
        });
        
        $(".act .new50 input[name='quantity']").keyup(function(){ 
            updatePriceBySize();
        });

        $('.act .full-tov').click(function(){
            updatePriceBySize();
        });
        
        function updatePriceBySize()
        {
            $.ajax({
                url: 'index.php?route=product/product/add',
                type: 'post',
                data: $('.act .option_lan input[type=\'text\'], .act .option_lan input[type=\'hidden\'], .act .option_lan input[type=\'radio\']:checked, .act .option_lan input[type=\'checkbox\']:checked, .act .option_lan select, .act .option_lan textarea'),
                dataType: 'json',
                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']) {
                                alert('3');
                                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']) {
                            alert('4');
                            $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
                        }
                        alert('5');
                        // Highlight any found errors
                        $('.text-danger').parent().addClass('has-error');
                    } else {
                        $('#total_price_ex_tax').html(json['total_extax']);
                        $('.act .new50 .price-new').html(json['total']);
                    }   
                }
            });
        }
    });
</script>

 



в самом html все ок, но прикреплю на всякий случай прикреплю бокс опций:
 

Прихований текст
<div class="option_lan">
                                                                                  <!-- Width then Height -->
                            <div class="form-group required hidden" id="option-5271">
                              <label class="control-label size-option-label" for="input-option5271">Укажите размер в (см)</label>
                              <div id="input-option5271">
                                <input type="text" name="option[5271][width]" value="" placeholder="Ширина" id="input-option5271width" class="pso-width-input form-control">
                                <input type="text" name="option[5271][height]" value="" placeholder="Высота" id="input-option5271height" class="pso-height-input form-control">
                              </div>
                                                              <input type="hidden" class="proportional_size_width" value="">
                                <input type="hidden" class="proportional_size_height" value="">
                                                          </div>
                                                                                                                  
                                                                                                             <div class="form-group cat_option sid18">
                            <label class="control-label">Сторона управления </label>
                            <div id="input-option2640">
                               <div data-toggle="buttons" class="radio">
                                                                    <label class="btn btn-grey op11 oidЛевая">
                                     <input type="radio" name="option[2640]" value="5583">
                                     <span class="new40">Левая</span>
                                  </label>
                                                                    <label class="btn btn-grey op11 oidПравая active">
                                     <input type="radio" name="option[2640]" value="5584">
                                     <span class="new40">Правая</span>
                                  </label>
                                                                 </div>
                            </div>
                         </div>
                                            
                                                                                                             <div class="form-group cat_option sid20">
                            <label class="control-label">Система фиксации </label>
                            <div id="input-option4191">
                               <div data-toggle="buttons" class="radio">
                                                                    <label class="btn btn-grey op11 oidНа леске active" data-toggle="tooltip" data-original-title="+30 грн">
                                     <input type="radio" name="option[4191]" value="17163">
                                     <span class="new40">На леске</span>
                                  </label>
                                                                    <label class="btn btn-grey op11 oidБез лески" data-toggle="tooltip" data-original-title="">
                                     <input type="radio" name="option[4191]" value="17161">
                                     <span class="new40">Без лески</span>
                                  </label>
                                                                 </div>
                            </div>
                         </div>
                                            
                                              </div>

 



возможно нужно поменять путь 

url: 'index.php?route=product/product/add',

для страницы категории?

Надіслати
Поділитися на інших сайтах


Если открыть консоль разработчика и посмотреть какой payload при отправке запроса можно понять в чем беда)

  • +1 1
Надіслати
Поділитися на інших сайтах

В 31.10.2023 в 10:38, spectre сказав:

Если открыть консоль разработчика и посмотреть какой payload при отправке запроса можно понять в чем беда)

 

Можете показать на примере как это сделать?)

Надіслати
Поділитися на інших сайтах


В 31.10.2023 в 10:38, spectre сказав:

Если открыть консоль разработчика и посмотреть какой payload при отправке запроса можно понять в чем беда)

 

спасибо большое))) благодаря вашему коменту понял что данные о ид товара и количестве не отправлялись. сделал)))

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.