Как организовать быстрый просмотр товара через Ajax?
Добрый день,
Подскажите, как можно совместить modal-dialog от Bootstrap или же Jquery ui dialog с Ajax, чтобы данный загружались в данное модальное окошко при нажатии на ссылку. Например верстка скрытого модального окошка пока не содержит контента, нажимаем на ссылку, получаем код элемента каким то образом, данные POST или GET летят через js в php, получаем ответ, наполняем данные и подгружаем их в верстку модалки либо видим пиктограмму загрузки до полного подгружения. Не хочется в цикле делать скрытые элементы уже наполненных информацией и тяжелыми картинками модалок. Хотелоcь бы сделать через Jquery или Angular. Самый беспкоящий вопрос - это как повесить 2 обработчика на одно событие. Есть ли где нибудь примеры подобной реализации? Не обязательно, но очень здорово, если в yii есть подобный компонент.
1. Как правильнее отправить код (в голову приходит только data)
2. Наверное тут хватит одного. не могу уловить алгоритм: окошко открылось с пиктограммой загрузки (1 действие) -> id улетел в функцию, прилетели данные и подгрузились в окошко(2-е действие) . Т.е. если я хочу достать данные, то как мне не перебить этим открывание окошка.
> окошко открылось с пиктограммой загрузки (1 действие) -> id улетел в функцию, прилетели данные и подгрузились в окошко
Ну и отлично. Что вам еще надо-то? Как это помешает открыванию окошка?
Возьмем jquery например:
// показываем окошка и в нем есть какая-нибудь анимированная картинка скажем
$(окошко).fadeIn(400);
// пока оно показывается:
// ваши данные для отправки
var ajax_data = {
val1: 'val4',
}
$.ajax({
type: 'POST',
url: '/страница/запроса.php',
data: ajax_data,
success: function(data) {
// прилетел ответ - заменяем вашу анимашку на то что прилетело
$(вашаАнимашкаВокошке).replaceWith(data);
},
error: function(xhr, str){
alert('Возникла ошибка: ' + xhr.responseCode);
}
});
На сколько помню ни bootstrap modal, ни jquery dialog не поддерживают удалённую загрузку содержимого. В подобной задаче я в итоге выбрал подгружать данные при основной загрузке страницы и выводить обычным способом. В таком случае появился один плюс, при попытке открыть модальное окно, не нужно ждать подрузки.
А в вашем случае я бы создал пустое модальное окно и повесил обработчик на событие создания (jqueryui), в этот момент вруную заполнял бы его через jquery.ajax() например
Дмитрий Байбухтин Почему modal не поддерживают удаленную загрузку? есть один модальный диалог а весь контент подставляется в него простым append'ом. Это проще и быстрее чем для каждого элемента модальное окно строить.
Илья Бондаренко: процитируйте документацию, где написано о поддержке удалённой загрузки содержимого модального окна. Не нашли? Тогда зачем спорите. То, что можно самому это сделать - логично