Тема: Ошибка с отправкой заказа с корзины.
Изучив структуру, выяснил что по забитому адресу (/sendcart/) хранится ошибка "Произошла ошибка. Повторите попытку" только в закодированном варианте. Понятное дело, я нашёл переменную отвечающую за эту ошибку, но я не могу понять почему она выходит.
Исходные файлы не мои, я не разработчик этого сайта, но решить эту проблему я обязан.
Оставлю кусок кода, возможно в нём есть ошибка.
З.Ы. Очень объёмный кусок...
$('document').ready(function(){
function result_handler( data ) {
var data = JSON.parse( data );
$('.message_top span').html( data.text );
$('.message_top').fadeIn(250, function(){
setTimeout( function(){
$('.message_top').fadeOut(250 , function(){
//location.reload();
//location.href= '/my/orders/';
location.href= '/cart/?reload=true';
});
} , 3000 );
});
}
function save_order_data( data ) {
$.ajax({
type: "POST",
url: "/sendcart/",
data: 'action=save_cart_data&data='+data,
success: function(data){
result_handler( data );
},
error: function(data) {
result_handler( data );
}
});
}
function send_order_data( data ) {
$.ajax({
type: "POST",
url: "/sendcart/",
data: 'action=send_cart_data&data='+data,
success: function(data){
result_handler( data );
},
error: function(data) {
result_handler( data );
}
});
}
$('body').on('click','.message_top i',function(){
$(this).parent().fadeOut(250);
});
function GetData( data_provider ) {
result = [];
$('#cartItems tr').each(function( e ){
if( $(this).attr('data-id-provider') == data_provider && $.trim($(this).find('td.colTitle a').text()).length > 0 ) {
var title = $(this).find('td.colTitle a').text();
var Amount = $(this).find('td.colAmount input').val();
var Price = $(this).find('td.colPrice').attr('data-coast');
var Weight = $.trim($(this).find('td.colWeight').text());
var Unit = $(this).find('td.wCart-eCell.colAmount + td').text();
var Offer = $.trim($(this).attr('data-offer'));
var resultPrise = parseFloat($.trim($(this).find('div.wGroupTotal-eParamValue_price').html()));
if( isNaN(resultPrise) ) {
var resultPrise = 'null';
}
var resultWeight = parseFloat($.trim($(this).find('div.wGroupTotal-eParamValue_weight').html()));
if( isNaN(resultWeight) ) {
var resultWeight = 'null';
}
var data_product_id = $(this).attr('data-product-id');
result.push( encodeURIComponent(title)+'##$##'+Amount+'##$##'+Price+'##$##'+Weight+'##$##'+Unit+'##$##'+resultPrise+'##$##'+resultWeight+'##$##'+data_provider+'##$##'+data_product_id+'##$##'+Offer+'$%$%' );
}
});
return result;
}
$('.wGroupTotal-eSendOffer').click(function(){
if( $(this).attr('disabled') == 'true' ) {
return false;
}
var data_provider = $(this).parents('.wCart-eRow').attr('data-id-provider');
send_order_data( GetData( data_provider ) );
$(this).attr('disabled','true');
});
function send_offer_data( data , action ) {
$.ajax({
type: "POST",
url: '/ordersactions/?action='+action,
data: data,
success: function(data){
if( data ) {
data = JSON.parse(data);
$('.wCartBlock-eItemsCount.jItemsCount').text( data.count );
$('.wCartBlock-eItemsCount.jItemsCount').css('visibility','visible');
}
},
error: function(e){
} ,
dataType: "html",
});
}
$('.wProductListItem-eToCart.jAddToCart').click(function(){
//$(this).html('<i class="fa fa-check-circle" aria-hidden="true"></i> В корзине').css({'color':'green','cursor':'default !important'});
//$(this).html('<i class="fa fa-check-circle" aria-hidden="true"></i> <i class="fa fa-shopping-cart" aria-hidden="true"></i>').css({'color':'green','cursor':'default !important'});
//$(this).html('<i class="fa fa-shopping-cart" aria-hidden="true"></i>').css({'color':'green','cursor':'default !important'});
//$(this).html('<i class="fa fa-shopping-cart" aria-hidden="true"></i>').attr('style','color:green; cursor:default !important;');
$(this).html('В корзине').css({'color':'green','cursor':'default !important'});
$('.wCartBlock-eItemsCount.jItemsCount').css('visibility','hidden');
setTimeout( function(){ send_offer_data( 'data=["get_cart_data":"true"]' , 'get_cart_data' ) } , 1000 );
});
if( $('input').hasClass('inp_rate') ) {
$('input.inp_rate').attr('value','1');
setTimeout(function(){
$('div.stars i').removeClass('act');
$('.desc.descr').html('');
$('.rate.rating').css('visibility','visible');
},1000);
$('.formStyle input[type="submit"]').attr('disabled','disabled');
$('div.stars i').click(function(){
$('.formStyle input[type="submit"]').removeAttr('disabled');
});
}
$('.wProductListItem-eRatingColored.m0').each(function(){
var max_rate = 5;
var rate = ((parseFloat($(this).attr('data-rate')) /max_rate)*100).toFixed(0);
$(this).css('width', rate+'%');
});
$('.wGroupTotal-eCalculateDelivery').click(function(){
$('.delivery_block iframe').attr('src',$('.delivery_block iframe').attr('data-src'));
$('.delivery_block').fadeIn(250);
});
$('.delivery_block i').click(function(){
$('.delivery_block').fadeOut(250);
});
function PrintElem(elem)
{
if( $('.wCart-eRow .jq-checkbox').hasClass('checked') ) {
Popup($(elem).html());
}
return true;
}
function Popup(data)
{
var mywindow = window.open('', 'Print', 'height=600,width=800');
mywindow.document.write('<html><head><title>Print</title>');
mywindow.document.write('</head><body >');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.document.close();
mywindow.focus();
mywindow.print();
mywindow.close();
return true;
}
$('.wProviderControls-eButton.mPrint').click(function(){
$('#ToPrint').html('<h1 style="font-size: 30px; padding-top: 10px; margin-bottom: 31px;">Система поиска продукции vnalichii.ru</h1>');
$('.mHeaderRow_tbody').each(function( e ){
$('#ToPrint').append('<style>.tablehead{display:none;}.tablehead:first-child{display:table-row;}</style><table style="display:none;" class="content_print content_print'+e+'" width="100%"></table>');
result = '';
$(this).find('tr').each(function( f ){
var provider_name = $(this).find('td.colProvider').text();
var title = $(this).find('td.colTitle a').text();
if( $.trim(title) != '' ) {
var Amount = $(this).find('td.colAmount input').val();
var Price = $(this).find('td.colPrice').attr('data-coast');
var Weight = $.trim($(this).find('td.colWeight').text());
var Unit = $(this).find('td.wCart-eCell.colAmount + td').text();
var resultPrise = parseFloat($.trim($(this).find('div.wGroupTotal-eParamValue_price').html()));
if( isNaN(resultPrise) ) {
var resultPrise = 'null';
}
var resultWeight = parseFloat($.trim($(this).find('div.wGroupTotal-eParamValue_weight').html()));
if( isNaN(resultWeight) ) {
var resultWeight = 'null';
}
var data_product_id = $(this).attr('data-product-id');
if( f <= 1 ) {
var provider_title = 'Поставщик';
}
else {
var provider_title = '';
}
if( resultPrise != 'null') {
result = '<tr class="class_result"><td><br/><b>Итог:</b></br><b>Сумма - '+resultPrise+'</b><br/><b>Вес - '+resultWeight+'</b><br/><br/><br/><br/><br/></td></tr>';
}
$('#ToPrint .content_print'+e+'').append('<tr class="tablehead"><td>'+provider_title+'</td><td>Наименование</td><td>Ед. измерения</td></td></ts><td>Количество</td><td>Цена за ед, руб.</td><td>Вес (кг)</td></tr><tr><td class="nameprovider">'+provider_name+'</td><td>'+title+'</td><td>' + Unit + '</td><td>'+Amount+'</td><td>'+Price+'</td><td>'+Weight+'<br/><br/></td></tr>'+result+'');
}
});
});
$('.content_print tbody').each(function(){
var count = $(this).find('.class_result').length;
// remove data
$(this).find('.class_result').each(function(e){
e = e + 1;
if( e != count ) {
$(this).remove();
}
});
});
$('.mHeaderRow_tbody').each(function( e ){
if( $(this).find('.wCart-eGroupCheckBox').hasClass('checked') ) {
$('.content_print'+e+'').css('display','table');
}
});
$('.mHeaderRow_tbody').each(function( e ){
if( $(this).find('.content_print').css('display') == 'none' ) {
$(this).remove();
}
});
PrintElem('#ToPrint');
});
$('.text_comment i').click(function(){
$('.text_comment_wrapepr').find('form').css('display','none');
$('.text_comment_wrapepr').find('.text_comment').css('display','block');
$(this).parents('.text_comment_wrapepr').find('.text_comment').slideUp(250);
$(this).parents('.text_comment_wrapepr').find('form').slideDown(250);
});
function InitTopPositionCheck() {
if( $(window).scrollTop() > 200 ) {
$('.header_inner_wrapper_content').addClass('fixed_class');
}
else {
$('.header_inner_wrapper_content').removeClass('fixed_class');
}
}
/*
$(window).scroll(function(){
InitTopPositionCheck();
});
InitTopPositionCheck();
*/
$('.sLogoLine-eAdditionalLine .sLogoLine-eLabel').click(function(){
if( $.trim( $('.wSearchLine-eInput').val() ).length > 0 ) {
$('.wSearchLine-eForm').submit();
}
});
$('.wAmountPicker input').on('change',function(){
$(this).val( $(this).val().replace(',','.') );
});
$('.wCart-eRow .jq-checkbox').click(function(){
if( $('.wCart-eRow .jq-checkbox').hasClass('checked') ) {
$('.wProviderControls-eButton').addClass('active');
}
else {
$('.wProviderControls-eButton').removeClass('active');
}
});
$('.comments_blocks').click(function(){
$('.comments_blocks_note').css('display','none');
});
$('.mSaveInProfile').click(function(){
$('.mHeaderRow_tbody').each(function( e ){
if( $(this).find('.wCart-eGroupCheckBox').hasClass('checked') ) {
save_order_data( GetData( $(this).attr('data-provider') ) );
}
});
});
$( "#datepicker" ).datepicker({
});
$.datepicker.regional['ru'] = {
closeText: 'Закрыть',
prevText: '<Пред',
nextText: 'След>',
currentText: 'Сегодня',
monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
monthNamesShort: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
dayNames: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
dayNamesShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
weekHeader: 'Нед',
dateFormat: 'dd.mm.yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['ru']);
$('.orders_wrapper .top_buttons a').click(function(){
if( $('.add_offers_wrapper').css('display') == 'none' ) {
$('.add_offers_wrapper').slideDown(250);
}
else {
$('.add_offers_wrapper').slideUp(250);
}
});
if( $('div').hasClass('searchoffers_wrapper') ) {
$('.offers_search_from input[type="text"]').val( $('.searchoffers_wrapper').text() );
}
$('.city_select_wrap').each(function(){
if( $(this).find('input').prop('checked') == true ) {
$(this).prependTo('.provider_li_inner');
}
});
$('.cityselect').click(function(){
var location = window.location.search;
var re=/(&byCity=")[^%byCityDelimiterEnd%]*/g;
var location_new = location.replace(re,'$1');
qwery = '';
qwery_city = '';
$('.provider_li_inner').find('input').each(function(){
if( $(this).prop('checked') ) {
qwery_city += $(this).val()+'%byCityDelimiter%';
}
});
if( $.trim(qwery_city) != '' ) {
qwery += '&byCity='+ qwery_city +'%byCityDelimiterEnd%';
}
window.location.href = $('.provider_li_inner input').attr('data-original')+qwery;
});
function get_cart_data( data , action ) {
$.ajax({
type: "POST",
url: '/ordersactions/?action='+action,
data: data,
success: function(data){
alert( data );
},
error: function(e){
/**/
} ,
dataType: "html",
});
}
function send_cart_data( dataObj ) {
$.ajax({
type: "POST",
url: '/cart/?Act=update',
data: dataObj,
success: function(data){
//$('.wAmountPicker input').removeAttr('disabled');
//get_cart_data( 'data=["data":"get_cart_data_full"]' , 'get_cart_data_full' );
location.reload();
},
error: function(e){
/*no handlers*/
} ,
});
}
$('.wAmountPicker-eButton.mInc.inc , .wAmountPicker-eButton.mDec.dec').click(function(){
clearTimeout(amountUpdateTimer);
amountUpdateTimer = setTimeout(ChangeHandler, 1000, $(this));
// if( $('.wAmountPicker input').attr('disabled') !== 'disabled' && $('div').hasClass('amount_catalog_input') && $.trim($(this).parents('.wProductListItem.mList').find('.wProductListItem-eToCart.jAddToCart').text()) !== 'В корзину' ) {
//$(this).parents('.wProductListItem.mList').find('.wProductListItem-eToCart.jAddToCart').html('<i class="fa fa-check-circle" aria-hidden="true"></i> В корзине').css({'color':'green','cursor':'default !important'});
// }
});
function ChangeHandler( obj ) {
if( $.trim(obj.parents('.wListProduct-eProductstListItem').find('.wProductListItem-eToCart').text() ) == 'В корзину' ) {
return false;
} else {
var val = obj.parents('.wAmountPicker').find('input').val();
var name = obj.parents('.wAmountPicker').find('input').attr('name');
var updateObj = {};
updateObj[name] = val;
if(obj.parents('.wAmountPicker').find('input').attr('data-offer')) {
var offerName = obj.parents('.wAmountPicker').find('input').attr('data-offer');
var offerValue = obj.parents('.wAmountPicker').find('input').attr('data-offer-val');
updateObj[offerName] = offerValue;
}
$('.wAmountPicker input').attr('disabled','disabled');
send_cart_data(updateObj);
}
}
var amountUpdateTimer;
$('.wAmountPicker').find('input').on('change',function(){
// ChangeHandler( $(this) );
});
$('.wAmountPicker').find('input').keyup(function(){
var jthis = $(this);
//ChangeHandler( $(this) );$(this)
// $(this).parents('.wListProduct-eProductstListItem').find('.fa-refresh').css('display','inline');
});
$('.wAuthBlock-eLink.inDialog').each(function(){
if( $(this).text() == 'Войти' ) {
$(this).remove();
}
});
$('.wAuthBlock').prepend('<a class="login_new" href="/auth/">Войти</a> <a class="login_new" href="/register/">Зарегистрироваться</a>');
$('.wAmountPicker-eInput.fieldAmount').focus(function(){
$(this).attr('data-value', $(this).val() );
$(this).val('');
});
$('.wAmountPicker-eInput.fieldAmount').focusout(function(){
var jthis = $(this);
var wrapper = jthis.closest('.wProductListItem-eCell');
var weightWrapper = wrapper.next();
var weightPerUnit = weightWrapper.attr('data-weight');
jthis.val( $(this).attr('data-value') );
if(jthis.attr('data-float') == 'false') {
if(jthis.val() < 1) {
jthis.val((1).toFixed(0));
weightWrapper.html((weightPerUnit).toFixed(0));
} else {
jthis.val(Math.floor(+jthis.val()).toFixed(0));
weightWrapper.html((weightPerUnit * jthis.val()).toFixed(0));
}
} else {
weightWrapper.html((weightPerUnit * jthis.val()).toFixed(3));
}
clearTimeout(amountUpdateTimer);
amountUpdateTimer = setTimeout(ChangeHandler, 200, $(this));
});
$('.wAmountPicker-eInput.fieldAmount').on('change',function(){
$(this).attr('data-value' , $(this).val().replace(',','.') );
var data_url = $(this).parents('.wListProduct-eProductstListItem').find('a.wProductListItem-eToCart').attr('data-href').split('=');
$(this).parents('.wListProduct-eProductstListItem').find('a.wProductListItem-eToCart').attr('data-href', data_url[0]+'='+data_url[1]+'='+$(this).val()+'&offer='+$(this).attr('data-offer-val'));
//dfdf
});
$('.provider_li').click(function(){
if( $('.provider_li_inner').css('display') == 'none' ) {
$('.provider_li_inner').css('display','block');
}
else {
$('.provider_li_inner').css('display','none');
}
});
$('.wPaginator-eLink').each(function(){
if( $(this).find('span').hasClass('text') || $(this).text() == '»' || $(this).text() == '«' ) {
$(this).addClass('paginator_mod');
}
});
// FIX
$('body').on('click','.jCheckBox',function(){
// if( $(this).find('input[value="company"]').prop('checked') ) {
// var wSearchLine_eInput = $.trim($('.wSearchLine-eInput').val());
// if( wSearchLine_eInput.length == 0 ) {
// location.href = 'http://'+ location.hostname + '/catalog/?query=&search_type=company';
// }
// }
// if( $(this).find('input[value="provider"]').prop('checked') ) {
// var wSearchLine_eInput = $.trim($('.wSearchLine-eInput').val());
// if( wSearchLine_eInput.length == 0 ) {
// location.href = 'http://'+ location.hostname + '/catalog/?query=&search_type=provider&sort=title&nsort=asc';
// }
// }
});
// FIX
if( $('li').hasClass('mTopProducts') ) {
$('a.wProductListItem-eTitle').attr('href','javascript:void(0);').css('cursor','default');
}
});