Не используется переменная
Не могу понять как использовать переменные
html, files_path после отработки функции $('.upload_files').on( 'click', function( event ){ ...} пробую например вывести в консоль console.log($html) внутри этой функции $(".add2cart").click(function () {...} выдается ошибка "Uncaught ReferenceError: $html is not defined" Ниже весь код: $(window).ready(function () { (function($){ var files; // переменная. будет содержать данные файлов // заполняем переменную данными файлов, при изменении значения file поля $('input[type=file]').on('change', function(){ files = this.files; }); // обработка и отправка AJAX запроса при клике на кнопку upload_files $('.upload_files').on( 'click', function( event ){ event.stopPropagation(); // остановка всех текущих JS событий event.preventDefault(); // остановка дефолтного события для текущего элемента - клик для <a> тега // ничего не делаем если files пустой if( typeof files == 'undefined' ) return; // создадим данные файлов в подходящем для отправки формате var data = new FormData(); $.each( files, function( key, value ){ data.append( key, value ); }); // добавим переменную идентификатор запроса data.append( 'my_file_upload', 1 ); // AJAX запрос $.ajax({ url : '/wp-content/themes/basic-pro/submit.php', type : 'POST', data : data, cache : false, dataType : 'json', // отключаем обработку передаваемых данных, пусть передаются как есть processData : false, // отключаем установку заголовка типа запроса. Так jQuery скажет серверу что это строковой запрос contentType : false, // функция успешного ответа сервера success : function( respond, status, jqXHR ){ // ОК if( typeof respond.error === 'undefined' ){ // файлы загружены, делаем что-нибудь // покажем пути к загруженным файлам в блок '.ajax-reply' var files_path = respond.files; var $html = ''; $.each( files_path, function( key, val ){ $html += val +'<br>'; } ) $('.ajax-reply').html( $html ); } // error else { console.log('ОШИБКА: ' + respond.error ); } }, // функция ошибки ответа сервера error: function( jqXHR, status, errorThrown ){ console.log( 'ОШИБКА AJAX запроса: ' + status, jqXHR ); } }); $(".add2cart").click(function () { description = ""; if ($("[data-id=" + $(this).data("id") + "]").hasClass("descriptionField")) { $(".descriptionField[data-id=" + $(this).data("id") + "]").removeClass("error"); if ($(".descriptionField[data-id=" + $(this).data("id") + "]").val() < 8) { $(".descriptionField[data-id=" + $(this).data("id") + "]").addClass("error"); return false; } else { description = $(".descriptionField[data-id=" + $(this).data("id") + "]").val(); // description = description + " www "; console.log($html); } } $('#basket').removeClass('close-basket'); $('button.add2cart[data-id=' + $(this).data("id") + ']').fadeOut(); $('p.descriptionField-p[data-id=' + $(this).data("id") + ']').fadeOut(); $('.descriptionField[data-id=' + $(this).data("id") + ']').fadeOut(); $('.selectPrice[data-id=' + $(this).data("id") + ']').fadeOut(); $('button.showFields[data-id=' + $(this).data("id") + ']').fadeIn(); $('button.showFields[data-id=' + $(this).data("id") + ']').addClass('added'); $('button.showFields[data-id=' + $(this).data("id") + ']').after('<i></i>'); $.ajax({ method: "post", url: "/ajax/common.php", data: ({ action: "add2cart", name: $(this).data("name"), price: ($(".selectPrice[data-id=" + $(this).data("id") + "]").val() > 0 ? $(".selectPrice[data-id=" + $(this).data("id") + "]").val() : $(this).data("price")), descr: description }), success: function () { showcart(); messageShowAddBasket("<p>Услуга добавлена<br><button onclick='showbasketlist(true);'>перейти в корзину</button></p>"); } }) }); }); })(jQuery); }); |
Цитата:
|
naplekov,
Вообще-то $html у вас сохраняется в $('.ajax-reply').html( $html ); - там и смотрите. |
Цитата:
|
Цитата:
|
naplekov,
Цитата:
$html у вас получает значение в ответе от сервера и сразу же записывается в $('.ajax-reply'). Больше у вас содержимое $('.ajax-reply') нигде не меняется. Если есть одно - должно быть и другое. |
Часовой пояс GMT +3, время: 19:07. |