0 / 0 / 1
Регистрация: 23.08.2013
Сообщений: 100
1

Как выполнить скрипты, подгружаемые через ajax?

06.11.2015, 20:03. Показов 5237. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Javascript
1
2
3
4
5
6
7
8
9
10
 {
                
                $.ajax({
                    url: 'страница.php',
                    success: function(data) 
                    {
                        $('#info').html(data);
                    }
                });
              }

содержимое страницы
Javascript
1
2
3
4
<center> <div class="hider" style=""><script type="text/javascript" charset="UTF-8" src="http://адрес"></script></div></center>
<script type="text/javascript">
скрипт
</script>
прочитал что аякс подгружает как текст. чтобы скрипты выполнялись надо что то прописать отдельно. с аяксом не знаком нужна помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2015, 20:03
Ответы с готовыми решениями:

Как обойти, Ajax не работает и выполнить php скрипт
Здравствуйте, есть ссылка по нажатию отрабатывает Ajax и выводит Hello World! Как при отключенном...

Получить данные, подгружаемые AJAX из WebBrowsera
Здравствуйте Есть сайт, которые грузит данные аяксом; при попытке получить эти данные через...

Не работают скрипты в подгруженном через AJAX документе
Добрый день! Использую AJAX для подгрузки контента: function loadHTML(sURL) { var...

Блоки, которые были загружены через ajax: не подгружаются скрипты
кто знает что делать ? или это какая та ошибка с моей стороны ?

6
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
06.11.2015, 20:29 2
Алексей92, почему Вы создали тему в разделе PHP?
0
0 / 0 / 1
Регистрация: 23.08.2013
Сообщений: 100
06.11.2015, 20:32  [ТС] 3
я не давно на этом форуме ошибся. перенесут пусть
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.11.2015, 20:39 4
Цитата Сообщение от Алексей92 Посмотреть сообщение
прочитал что аякс подгружает как текст. чтобы скрипты выполнялись надо что то прописать отдельно.
Вставить этот текст на страницу.

Не по теме:

Цитата Сообщение от Алексей92 Посмотреть сообщение
я не давно на этом форуме
Регистрация: 23.08.2013

0
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
06.11.2015, 21:09 5
Цитата Сообщение от Алексей92 Посмотреть сообщение
прочитал что аякс подгружает как текст
Видимо вы что-то перепутали. AJAX не есть язык, это просто технология передачи данных и получения данных от сервера, пускай - мост между js и php
Если взять к примеру подгрузку контента то будет дело примерно так.
Допустим есть список с 5 пунктами, при клике по какому мы должны вывести определенный контент.
HTML5
1
2
3
4
5
6
7
<ul>
    <li id="data1">Кнопка 1</li>
    <li id="data2">Кнопка 2</li>
    <li id="data3">Кнопка 3</li>
    <li id="data4">Кнопка 4</li>
    <li id="data5">Кнопка 5</li>
</ul>
и блок в который будет заполнять
HTML5
1
2
3
<div id="content">
 
</div>
не забываем же конечно подключить jQuery, можно конечно и без него но так будет намного проще )
При клике отлавливаем id элемента. Передаем на сервер php скрипту который нам вернут соответствующий контент.
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
$(document).ready(function() {
    
$('ul li').click(function(){
    var thisId = $(this).attr('id'); // id кликнутого элемента
    
    function article(data, d){ // принимаем данные
            // если получаем массив приведем полученный массив к стандарту js data = JSON.parse(data);
            $('#content').html(''); // чистим
            $('#content').append(data); // добавляем в контейнер полученные данные 
        }
        
        function loadTime(){
            $('#content').html(''); // чистим
            $('#content').html('подождите ...'); // ждем
        }
    
    
    $.ajax({ // запрос ajax
                    url: "action.php", // путь к обработчику
                    type: "POST", // метод передачи
                    data: ({mod: thisId}), // данные ключ/значение, если нужно несколько то через запятую
                    dataType: "html", // ожидаемый тип данных при получении
                    beforeSend: loadTime, // фукнкция ожидания, будет работать во время запроса/ответа, не обязательна
                    success: article // функция приема данных
               });
        });
})
В скрипте данные принимаете как обычно, разве что если в запросе был массив то пришел бы он в формате json
и чтоб его привести к формату php его нужно провести через функцию json_decode()
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if(isset($_POST['mod'])){
    // Что то делаем, в зависимости от запроса. К примеру полученный контент с базы будет в переменной article
    if($_POST['mod'] == 'data1'){
        
    }
    
    echo $article; // будет ответ на запрос
 
    sleep(1); // сон 1 сек. чтоб было видно функцию ожидания
}
?>
замечу что если ответом будет массив то изначально нужно привести его к формату json пропустив через функцию json_encode

Собственно все, как видете с ajax тут работы не много. В этом деле более важно знания js, ну php конечно ))
0
0 / 0 / 1
Регистрация: 23.08.2013
Сообщений: 100
06.11.2015, 21:12  [ТС] 6
попробую разобраться
0
Эксперт PHP
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
06.11.2015, 21:25 7
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var loader = (function (src, callback) {
    var doc = window.document, cache = {};
    return function (src, callback) {
        if (cache.hasOwnProperty(src)) {
            callback && (callback());
        } else {
            var el = doc.createElement('script'), loaded = 0;
            el.src = src, doc.body.appendChild(el), cache[src] = 1;
            if (callback) {
                el.onload = el.onreadystatechange = function () {
                    if ((el.readyState && el.readyState !== 'complete' && el.readyState !== 'loaded') || loaded)
                        return false;
                    el.onload = el.onreadystatechange = null, loaded = 1, callback();
                };
            }
        }
    };
}());
//подключаем скрипт, если надо выполняем функцию обратного вызова (выполнится после загрузки скрипта)
loader('test1.js', me);
function me() {
    alert('This callback Me');
}
0
06.11.2015, 21:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2015, 21:25
Помогаю со студенческими работами здесь

Как выполнять скрипты из ajax.ResposeText, без jquery
как выполнять скрипты из ajax.resposeText, без jquery?

Как выполнить AJAX-запрос в React?
Я хочу получить данный с сервера и сохранить их в state. class NavBar extends React.Component...

Как выполнить JS вернувшийся в AJAX GET запросе?
Возвращается код вида: @model IEnumerable&lt;HomeIndexViewModel&gt; &lt;script id=&quot;markers-script-id&quot;&gt;...

Spring: JSP + AJAX запрос, как правильно выполнить
Доброго времени суток. Подскажите пожалуйста, такой вопрос. Есть .jsp файл, на который мне надо...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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