У меня есть веб-страница, на которой отображаются комментарии, и пользователи могут щелкнуть ссылку «Флаг», чтобы сообщить о некорректном комментарии.Выполнение функций Javascript из AJAX - ответ HTML
Когда они нажимают на ссылку «Флаг», я использую AJAX и innerHTML для отображения выпадающего списка под комментарием с кодом причины, например. Спам, Наступление, Не относится к теме и т. Д., А также кнопка «Отмена».
Если пользователь нажимает кнопку «Отправить», я хочу использовать другой запрос AJAX для отправки ответа на файл PHP, где база данных обновляется, и они получают «Спасибо» на их конце (без перезагрузки страницы). Я по сути хочу, чтобы DIV отображал раскрывающееся окно, которое нужно заменить «Спасибо», используя другой запрос AJAX.
Вот где проблема. Кажется, что я не могу выполнить запрос AJAX из ответа HTML из первого запроса AJAX. Функции JavaScript не срабатывают - даже простой Alert («hello world») не работает. Я попытался разместить функции JavaScript на главной странице, которая вызывает первый запрос AJAX, а также поместив его в файл PHP, который отображается как ответ HTML из первого запроса AJAX, но мне не повезло - функции просто делают не запускаются при их вызове.
Все работает нормально, если я загружаю файл PHP извне, поэтому я знаю, что JavaScript правильный. Он просто не работает, когда я загружаю файл PHP в ответ DIV для ответа HTML, а затем вызываю JavaScript оттуда.
Итак, суммируйте все, как вы выполняете функции JavaScript из ответа HTML запроса AJAX?
EDIT: вот пример того, что я хочу сделать:
Это AJAX часть, которая заполняет DIV, когда пользователь нажимает на ссылку Flag:
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4)
{
document.getElementById(whichdiv).innerHTML=xmlhttp.responseText;
}
};
Значение XMLHTTP. responseText происходит от этого внешнего файла:
<input type="hidden"/>
<script type="text/javascript" language="javascript">
function displayalert()
{
alert ('Hello World!');
}
</script>
<form name="myform" id="myform">
<input type="text" name="myfield" value="teststring"/><br/>
<input type="button" name="button" value="Submit"
onclick="displayalert();"/>
</form>
Примечание: <input type="hidden"/>
выше исходит из предположения, я нашел прочь http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx.
Когда пользователь нажимает кнопку, функция javascript displayalert() не запускается. Предупреждающее окно никогда не появляется. Если я загружаю файл извне вместо вызова его с помощью innerHTML, скрипт работает нормально.
Может ли xmlhttp.responseText содержать код JavaScript?
Попробуйте разместить свой код, который не работает. Трудно сказать, что вы пытаетесь сделать. – noah
Спасибо. Я обновил свой исходный пост с помощью кода выше. – andrewl85