Форум программистов, компьютерный форум, киберфорум
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 6
Регистрация: 23.05.2012
Сообщений: 445
1

Как в yii/ajax/jquery загрузить асинхронно картинки и сериализованную форму в data?

22.10.2015, 14:37. Показов 546. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день,

Есть такая проблемка,

Без проблем проходили данные постом через форму посредством ajax запроса и обрабатывались на сервере. Но появилась необходимость асинхронной загрузки главного изображения к записи и группы изображений к этой записи (CMultiFileUpload компонент).

Моя кнопка Chtml::submitButton находится вне виджета формы. Это Очень необходимо.

Раньше я просто посылал данные из формы, datatype и datacontent не указывал.

Javascript
1
2
3
4
5
$.ajax({
...
data: $("#hotels-form").serialize()
...
});


Пользуясь этим мануальчиком http://www.yiiframework.com/wi... ng-in-yii/

Решил запилить асинхронную загрузку.

В нем предлагается загружать картинки через formData:

Javascript
1
2
var formData = new FormData($("#post-form")[0]);
data: formData,
Плюс к этому указываются три параметра:

Javascript
1
2
3
cache: false,
contentType: false,
processData: false
1. Как мне отправить данные с формы вместе с formData
2. Что при этом делать с остальными параметрами ajax?
3. Как сделать так, чтобы на сервер отправлялось и главное изображение и группа изображений?

Пока химичу с параметрами, но ловлю подобные ошибки:
Uncaught TypeError: Illegal invocation

либо попадаю в секцию error у ajax без объяснения причин и логов:

Если:

Javascript
1
2
dataType:'json',
data: $("#hotels-form").serialize(),
Или:

Javascript
1
2
dataType:'json',
data: $("#hotels-form").serialize() + '&' + 'files='+ formData,
В данном случае теряю токен:

Javascript
1
2
dataType:'json',
data: $("#hotels-form").serialize() + formData,
Помогите пожалуйста!

Добавлено через 21 минуту
Странное дело:


Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        var formData1 = new FormData($("#hotels-form")[0]);
 
 
jQuery.ajax({
            url: '/sadmin/hotels/ajaxCreate',
            data: formData1,
            cache: false,
            contentType: false,
            processData: false,
            type: 'POST',
            success: function(data)
            {
                alert(data);
            }
        });

Сделал так и у меня улетели на север и картинки ,и группа ,и форма, не понимаю, почему они улетели?! Я ведь только главную картинку отправил?!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2015, 14:37
Ответы с готовыми решениями:

jquery.ajax поле - data:
Привет. Код: function send() { $.ajax({ type: "POST", url: "result.php", data: // сюда надо...

Ajax jquery table data
Доброго дня, вопрос у меня такой, я имею таблицу получаемую из результатов запроса ajax таблица...

Как асинхронно обновить Ajax.BeginForm
Здравствуйте, подскажите, пожалуйста, каким должен быть правильный ответ от контроллера для...

Асинхронно загрузить данные
Есть личный кабинет, при входе отображается имя пользователя и в скобочках его балас(считается в...

0
22.10.2015, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2015, 14:37
Помогаю со студенческими работами здесь

Асинхронно загрузить изображение в Image
Если загружать большое изображение по принципу Image.Source, то интерфейс будет тупить некоторое...

Асинхронно загрузить изображение в Image
Me.Text1 = CDate(Me.Text1) + 1

Асинхронно загрузить картинку на сервер, и вывести ее пользователю
Как можно, асинхронно вывести все изображения из директории пользователю(включая загруженную им...

Как в yii модуле подключить jquery?
Добрый день. В клиентской части Jquery уже подключен из framework\web\js\source\ Я просто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru