У меня есть веб-страница с комментариями, и пользователи могут щелкнуть ссылку «Пометить», чтобы сообщить о неприемлемом комментарии.
Когда они нажимают на ссылку «Флаг», я использую AJAX и innerHTML для отображения выпадающего списка под комментарием с кодом причины, например, Спам, Оскорбление, Не имеет отношения к теме и т. Д., А также кнопка Отмена.
Если пользователь нажимает кнопку Отправить, я хочу использовать другой AJAX-запрос для отправки своего ответа в файл PHP, где обновляется база данных, и он получает «Спасибо» на своем конце (без перезагрузки страницы). По сути, я хочу, чтобы DIV, отображающий раскрывающийся список, был заменен на «Спасибо» с помощью другого запроса AJAX.
Вот в чем проблема. Кажется, что я не могу выполнить запрос AJAX из ответа HTML от первого запроса AJAX. Функции JavaScript не работают - даже простое предупреждение («привет мир») не работает. Я попытался разместить функции JavaScript на главной странице, которая вызывает первый запрос AJAX, а также поместить его в файл PHP, который отображается как ответ HTML от первого запроса AJAX, но мне не повезло - функции просто делают не беги, когда их зовут.
Все работает нормально, если я загружаю файл PHP извне, поэтому я знаю, что JavaScript правильный. Это просто не работает, когда я загружаю файл PHP в HTML-ответ DIV, а затем вызываю JavaScript оттуда.
Итак, чтобы подвести итог, как вы выполняете функции JavaScript из ответа HTML на запрос AJAX?
РЕДАКТИРОВАТЬ: вот пример того, что я хочу сделать:
Это часть AJAX, которая заполняет DIV, когда человек щелкает ссылку Флаг:
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?