2017-02-03 5 views
0

Итак, у меня есть страница PHP, которую можно загрузить двумя способами. он может быть непосредственно встроен на страницу с помощью includes() или другой страницы, которая предназначена для загрузки первой страницы по запросу пользователя с использованием AJAX. Моя проблема связана с этими строками кода:вызов javascript в html-блоке после загрузки Ajax

echo "<script>"; 
    echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");"; 
    echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');"; 
echo "</script>"; 

Это отлично работает при прямых нагрузках. Однако AJAX, как вы знаете, не запускает javascripts при загрузке. Поскольку для этого кода требуются динамические переменные, известные только для скрипта PHP, я не могу просто вызвать функции в функции AJAX. Мне было интересно, есть ли вообще сказать JavaScript для запуска содержимого этого тега скрипта после его загрузки?

+1

вы, вероятно, должны что-то сделать в части «успеха» ajax. Если вы просто эхом, вы получите команды обратно в виде строки, которую вы можете оценить, если это необходимо, в противном случае извлечение данных назад как json будет более разумным. –

ответ

0

Поместите скрипт JS внутри функции AJAX сделано

$.ajax({ 

}).done(function() { 
    <?php 
    echo "<script>"; 
    echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");"; 
    echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');"; 
    echo "</script>"; 
    ?> 
}); 

Для справки здесь JQuery Ajax апи http://api.jquery.com/jquery.ajax/

Существует несколько вариантов. Примечание counselledCount: TXT является переменной пост, поэтому на странице, которая обрабатывает ваш АЯКС доступ запрос, он с $_POST["counselledCount"] Вот другой пример:

$.post("../includes/process-results.php", {counselledCount: txt, currentPageReset: "yes"}, function(result){ 
     showAjaxResult(result); 
}); 

теперь вместо того, чтобы использовать Ajax сделано, на странице, которая обрабатывает запрос Ajax и отправляет этот запрос обратно, отправьте свой скрипт обратно с запросом.

$request = "<script>"; 
$request .= "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");"; 
$request .= "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');"; 
$request .= "</script>"; 
+0

ajax не имеет доступа к переменным PHP. – Zaper127

+0

Ajax загружает код. переменные не существуют, когда загружается оригинальный AJAX. Мне нужно получить его после запуска Ajax. – Zaper127

+0

Вы отправляете запрос ajax в php-файл. если это так просто положить их в сеанс и захватить theb в коде, используемом вами для обработки запроса ajax. –

0

Таким образом, ответ был Eval()

eval(document.getElementById('slide_start').innerHTML); 

путем добавления идентификатора к тэгу я мог вытащить скрипт в функцию обратного вызова используйте Eval(), чтобы выполнить это спасибо A. lau для того, чтобы указать мне правильный путь.

Смежные вопросы