Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 06.06.2014
Сообщений: 68

Работа с селекторами, после подгрузки html через ajax

17.11.2015, 14:51. Показов 1362. Ответов 4
Метки нет (Все метки)

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

Подскажите как сделать, что бы в подгруженный html была возможность работать с ним другими функциями.
Кнопка вызывает функцию
HTML5
1
<a href="javascript:void(0);" class="buyButton" onclick="return BuyE('100/200 (44)', '1100','Эконом','/catalog/audi/100-200-44/');">Заказать</a>
Функция выполняется и передает параметры в другую функцию
JavaScript
1
2
3
4
5
6
7
8
function BuyE(name,price,type,page){
        var artE = $("#artE>span").text();
        var complE = $("#complE input:checked").attr("value");
        var color = $('.colorLine').find(".active").text();
        if(name && artE && price && color){
            form(name,artE,price,type,color,page,complE);
        }
    }
Следующая функция отправляет пост запрос
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function form(name,art,price,type,color,page,compl){
        if(!compl){
            compl = "Не установлено";
        }
        $.ajax({
            url:     "/include/buy.php",
            type:     "POST",
            data:{name:name,art:art,price:price,type:type,color:color,page:page,compl:compl},
                beforeSend: function() { 
                    $(".overlay").remove();
                },      
                success: function(answer) { 
                    $("body").append(answer);
                    //alert(answer);
                },
                error: function() {
                    alert("Не возможно отправить");
                }
        });
 
    }
в PHP скрипте выполняются некоторые действия, переменные $user && $phone при первом запросе еще не установлены
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?if($user && $phone){      
...
...
        
        
    }
    else{
        echo('
        <div class="overlay">
            <div class="form fancybox-wrap">
                <form action="/include/buy.php" id="order" method="POST" class="popUpForm">
                    <input name="name" type="hidden" value="'.$name.'">
                    <input name="art" type="hidden" value="'.$art.'">
                    <input name="price" type="hidden" value="'.$price.'">
                    <input name="type" type="hidden" value="'.$type.'">
                    <input name="color" type="hidden" value="'.$color.'">
                    <input name="page" type="hidden" value="'.$page.'">
                    <input name="compl" type="hidden" value="'.$compl.'">
                    <input name="user_name" type="text" value="'.$user.'" class="user_name" placeholder="Ваше имя *">
                    <input name="phone" type="text" value="'.$phone.'" class="user_phone" placeholder="Ваш телефон *">
                    <textarea name="comment"  class="message" placeholder="Комментарий к заказу"></textarea>
                    <button type="button" class="submit" onclick="Order(order);">Оформить</button>
                </form>
                <a href="javascript:void(0);" class="fancybox-close"></a>
            </div>
        </div>
        ');
    }?>
Мне нужно что бы ответ приходил в подгруженный html, функция Order(form) выполняется
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function Order(form){
        var name = form.name.value;
        var art = form.art.value;
        var price = form.price.value;
        var type = form.type.value;
        var color = form.color.value;
        var page = form.page.value;
        var compl = form.compl.value;
        var phone = form.phone.value;
        var user_name = form.user_name.value;
         
        $.ajax({
            url:     "/include/buy.php",
            type:     "POST",
            response: "HTML",
            data:{
                    name:name,
                    art:art,
                    price:price,
                    type:type,
                    color:color,
                    page:page,
                    compl:compl,
                    phone:phone,
                    user_name:user_name
                },
                beoreSend: function() { 
                    $(".overlay").remove();
                },      
                sucess: function(data) { 
                    $("body").append(answer);
                    //alert(data);
                },
                error: function() {
                    alert("Не возможно отправить");
                }
        });
    }
Функция работает и выполняет все действия, но при этом ответ не приходит.

Смотрел функцию .delegate(); не могу понять смогу ли я её использовать

Знающие люди, подскажите.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2015, 14:51
Ответы с готовыми решениями:

Перестают работать методы audio после подгрузки AJAX
В результате работы живого поиска AJAX'ом подгружаются результаты: $(document).ready(function() { $('#search').keyup(function(e){...

Обновление таблицы html через ajax
с пхп через limit я достаю первые 10 строк таблицы. потом через пхп и хтмл создаю таблицу и вписываю туда даные из масива (через ехо) ...

Не срабатывает событие после подгрузки через AJAX
Здравствуйте, помогите решить данную проблему: http://yiiframework.ru/forum/viewtopic.php?f=3&amp;t=30869&amp;p=157371#p157371 Уже...

4
433 / 352 / 259
Регистрация: 29.11.2011
Сообщений: 628
17.11.2015, 15:54
Js_Skriptor, у кнопки:
HTML5
1
<button type="button" class="submit" onclick="Order(order);">Оформить</button>
уберите атрибут onclick="Order(order);".
А в JS добавьте обработчик методом .on(), который использует делегирование (всплытие событий), т.е. позволяет создать обработчик до того, как элемент появится в DOM-е. Он более универсален, в отличии от устаревшего метода .delegate().
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$(function() {
    $('.popUpForm .submit').on('click', Order);
});
 
function Order(form) {
        var name = form.name.value;
        var art = form.art.value;
        var price = form.price.value;
        var type = form.type.value;
        var color = form.color.value;
        var page = form.page.value;
        var compl = form.compl.value;
        var phone = form.phone.value;
        var user_name = form.user_name.value;
         
        $.ajax({
            url:     "/include/buy.php",
            type:     "POST",
            response: "HTML",
            data:{
                    name:name,
                    art:art,
                    price:price,
                    type:type,
                    color:color,
                    page:page,
                    compl:compl,
                    phone:phone,
                    user_name:user_name
                },
                beoreSend: function() { 
                    $(".overlay").remove();
                },      
                sucess: function(data) { 
                    $("body").append(answer);
                    //alert(data);
                },
                error: function() {
                    alert("Не возможно отправить");
                }
        });
}


Добавлено через 8 минут
А вообще проблема у вас не в делегировании, а в том, что в функции Order() в
JavaScript
1
2
3
sucess: function(data) { 
      $("body").append(answer);
}
В $("body").append() просто надо передавать не answer а data
0
3 / 3 / 0
Регистрация: 06.06.2014
Сообщений: 68
17.11.2015, 16:33  [ТС]
Vadim_Lasso, куда мне этот обработчик вешать?
JavaScript
1
2
3
$(function() {
    $('.popUpForm .submit').on('click', Order);
});
Вот этот код подгружен аяксом вниз страницы
HTML5
1
2
3
4
5
6
7
8
9
<div class="overlay">
            <div class="form fancybox-wrap">
                <form action="/include/buy.php" id="order" method="POST" class="popUpForm">
                    ........
                    <button type="button" class="submit" onclick="Order(order);">Оформить</button>
                </form>
                <a href="javascript:void(0);" class="fancybox-close"></a>
            </div>
</div>
В этом то вся и соль.

Этот подгруженный блок, должен реагировать на селекторы
0
27 / 28 / 16
Регистрация: 18.10.2015
Сообщений: 187
18.11.2015, 02:46
JavaScript
1
2
3
$(function() {
    $('.popUpForm .submit').on('click', Order);
});
Вешать нужно в файл где скрипты или через script в шапке
Сейчас в моде использовать ненавящивый js
0
3 / 3 / 0
Регистрация: 06.06.2014
Сообщений: 68
18.11.2015, 09:30  [ТС]
Код рабочий, опечатка была в
JavaScript
1
sucess
и соответственно (data)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2015, 09:30
Помогаю со студенческими работами здесь

Вывод через ajax в html и чтоб после перезагрузки инфа оставалась
Есть некая форма: &lt;form action = &quot;/index.php&quot; method=&quot;POST&quot; id = &quot;article_send&quot; &gt; &lt;p&gt;Название...

Работа с псевдо-селекторами
Есть горизонтальная менюшечка с разделителем между пунктами. Код разделителя: nav&gt;ul&gt;li a:after { position: absolute; ...

Изменить html который был загружен через ajax
Всем привет, такая проблема: Допустим у меня есть изначально html страница с кодом: &lt;input text=&quot;button&quot;...

Пытаюсь получить html страницы через ajax, приходит json
Сам ajax: $.ajax({ type: &quot;GET&quot;, url: &quot;filter.html&quot;, dataType: 'html', ...

Не работают некоторые запросы в БД из PHP через AJAX с HTML страницы
Делаю сайт отеля, где есть возможность сложного поиска по номерам отеля, который кстати говоря работает полностью. А также возможность в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru