Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2016, 19:22
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Запустить скрипт, при успешном выполнение ajax
Подскажите, необходимо запустить скрипт на странице при успешном выполнении ajax запроса.

Скрипт которые отбирает какие то данные и возвращает их в html
<input id="test" type="text" value="test">
<input type="button" onclick="go();">
<div id="syda"></div>


function go()
{
var test= $("#test").val();
       $.ajax({
                type: "POST",
                url: "url.php",
                data: {data: data},
                       success: function(html) {
                        $("#syda").empty();
                        $("#syda").append(html);
			 } });}


<?php
$test= $_POST [data];
echo $test;
?>



При успешном возвращении данных в html мне надо запустить простейший скрипт:
<script>
alert('123');
</script>


Сложность в том что необходимо запустить скрипт только при успешном получении данных через ajax. Вот это сделать не получается
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2016, 19:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

success: function(html) {
    $("#syda").html(html);
    alert(123)
}
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2016, 19:35
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

А возможно передать в этот скрипт какие то переменные из php части?
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2016, 19:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В смысле для поместить в документ данные и еще данные для функции? Можно, но в данном случае нужно json формат использовать.
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2016, 10:13
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

А можно пример как передать какие то данные в скрипт и его запустить через json

Заранее спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2016, 11:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Да просто, если все известно заранее, например некая функция, которая будет выводить сообщения, пусть условно назовем ее showMessage, и определив для нее имя ключа, под которым сервер будет отдавать для нее сообщения, пусть это message, а данные помещаемые на страницу это ключ data. Тогда на сервере отправка данных это:

echo json_encode(['data'=>некие данные, 'message'=>'Сообщение']);


Методу ajax указать тип ожидаемых от сервера данных json:

.......
dataType: 'json', //можно и не задавать тип, JQ определит автоматически, но сервер должен передать заголовок соответствующего типа MIME 
success: function(d) {
    $("#syda").html(d.data);
    showMessage(d.message)
}


Естественно можно запускать функцию и по условию, к примеру, если сообщение от сервера, это не постоянные данные в каждом его ответе.
Ответить с цитированием
  #7 (permalink)  
Старый 13.01.2016, 17:24
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Подскажите а на сколько критично если я передают на странице php скажем вот такой скрипт:
<script type="text/javascript">
	function go() {
	    alert("123");
	}
	</script>


а потом на странице js буду его инициировать:
success: function(html) {
	    $("#syda").html(html);
	    go();
	}



Все вроде работает. Вопрос на сколько это корректно?
Ответить с цитированием
  #8 (permalink)  
Старый 13.01.2016, 17:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от djonA
Вопрос на сколько это корректно?
Ну почему не корректно, собственно все скрипты не подключаемые, а в теле страницы, так и выводятся сервером. Тут вопрос не в этом, а чего вы хотите - вы спрашивали как передать в функцию клиенту данные как ее аргумент. А обмен с сервером при этом асинхронный, каким же образом эти данные могут попасть как аргумент в функцию go?
В таком подходе нет гибкости.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки при асинхронных AJAX запросах San4ezy Общие вопросы Javascript 4 27.03.2014 21:48
Как средствами Ajax при нажатии на кнопку (ссылку) открывать окно, в котором будет ин Sergo jQuery 3 13.03.2014 10:17
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12
Помогите создать скрипт замены картинок при наведении курсора. SantaS Я не знаю javascript 3 05.06.2009 12:59