Передача данных в окно jquery fancybox

mdss

♖♘♗♕♔♗♘♖
Регистрация
20 Фев 2007
Сообщения
1.152
Реакции
709
Имеется вызов окна fancybox следующим кодом
Код:
$('a[rel=cat-buy]').fancybox({
        type : 'ajax',
        arrows : false,
        closeBtn : true,
        nextClick : false,
        helpers : {
            overlay : {
                closeClick : true,
                locked: false
            }
        },
        'afterLoad': function() {
            var a = this.element.parents('li').find('.cat-product-code').text(),
                   b = this.element.parents('li').find('.cat-product-name').text(),
                   c = this.element.parents('li').find('.cat-product-stock').html(),
                   d = this.element.parents('li').find('.cat-product-price').text();
        }
    });
Вопрос в том, как уже в вызванном окне (отдельный php файл) вывести эти данные?
Пробовал выводить так
Код:
$('#fb-product-code').text(a);
и ничего не выводит. Вопрос в том, как в удаленный файл вывести нужные мне значения?
 
как вызывается тот отдельный пхп файл? передайте через get, отдельное окно имеет свой набор элементов и не знает ничего про елементы окна, вызвавшего его

этот код нужно вызывать в окне откуда идёт вызов
Код:
var a = this.element.parents('li').find('.cat-product-code').text(),
                   b = this.element.parents('li').find('.cat-product-name').text(),
                   c = this.element.parents('li').find('.cat-product-stock').html(),
                   d = this.element.parents('li').find('.cat-product-price').text();

попробуйте также глянуть тут
Для просмотра ссылки Войди или Зарегистрируйся

можна попробовать поиграться вот так ещё
window.parent.$("#HiddenFieldState").val("MyValue");
 
Если делать в обратном порядке, то уже вызванное окно ничего не знает про родителя.
Опишу подробнее.
На странице есть с десяток ссылок на один и тот же файл, каждая из которых вызывает окно фансибокс. Но в каждом из этих окон должны быть свои данные.
Для примера:
- Родительский слой
-- Наименование товара
-- Артикул товара
-- Ссылка на вызов окна фансибокс

- Родительский слой
-- Наименование товара
-- Артикул товара
-- Ссылка на вызов окна фансибокс

- Родительский слой
-- Наименование товара
-- Артикул товара
-- Ссылка на вызов окна фансибокс.
Если всего один товар, проблемы нет. Просто делаем поиск по странице нужного элемента и подставляем данные из него.
Если же товаров несколько, то в вызываемое окно выводит данные по всем товарам.
Вот мне необходимо подставлять данные именно родителя ссылки, кликнув по которой происходит вызов окна.
 
Если делать в обратном порядке, то уже вызванное окно ничего не знает про родителя.
Опишу подробнее.
На странице есть с десяток ссылок на один и тот же файл, каждая из которых вызывает окно фансибокс. Но в каждом из этих окон должны быть свои данные.
Для примера:

Если всего один товар, проблемы нет. Просто делаем поиск по странице нужного элемента и подставляем данные из него.
Если же товаров несколько, то в вызываемое окно выводит данные по всем товарам.
Вот мне необходимо подставлять данные именно родителя ссылки, кликнув по которой происходит вызов окна.
а
find('.cat-product-code') возвращает один елемент или несколько?

может проще сразу линке аттрибуты задавать и их считывать? чем искать по иерархии 4 элемента?
 
а
find('.cat-product-code') возвращает один елемент или несколько?

может проще сразу линке аттрибуты задавать и их считывать? чем искать по иерархии 4 элемента?
возвращает все элементы. Буду именно таким способом делать, думал есть попроще реализация без назначения лишних атрибутов.

Как выяснилось все-таки можно обойтись штатными средствами :)
По итогу код вывоза окна получился вот таким:
Код:
    $('a[rel=cat-buy]').fancybox({
        type : 'ajax',
        arrows : false,
        closeBtn : true,
        nextClick : false,
        padding: 0,
        helpers : {
            overlay : {
                closeClick : true,
                locked: false
            }
        },
        afterShow: function () {
            var $win = $('.fancybox-type-ajax');
            $win.contents().find('#prod_name').val(this.element.parents('li').find('.cat-product-name').text());
            $win.contents().find('#prod_price').val(this.element.parents('li').find('.cat-product-price').text());
            $win.contents().find('#fb-product-pic').html(this.element.parents('li').find('.cat-product-pic').html());
            $win.contents().find('#fb-product-pic img').removeClass('img-responsive').removeAttr('style').css('max-width','300px');
            $win.contents().find('#fb-product-code').text(this.element.parents('li').find('.cat-product-code').text());
            $win.contents().find('#fb-product-name').text(this.element.parents('li').find('.cat-product-name').text());
            $win.contents().find('#fb-product-stock').html(this.element.parents('li').find('.cat-product-stock').html());
            $win.contents().find('#fb-product-price').text(this.element.parents('li').find('.cat-product-price').text());
        }
    });
 
Последнее редактирование модератором:
Назад
Сверху