나는 코멘트를 표시하는 웹 페이지를 가지고 있으며, 사용자는 부적절한 코멘트를보고하기 위해 '플래그'링크를 클릭 할 수 있습니다.AJAX에서 HTML 함수를 실행 - HTML 응답
플래그 링크를 클릭하면 AJAX 및 innerHTML을 사용하여 설명 아래에 드롭 다운 상자를 이유 코드와 함께 표시합니다 (예 : 스팸, 불쾌감, 주제와 관련이없는 것, 취소 버튼 등이 있습니다.
사용자가 제출을 클릭하면 다른 AJAX 요청을 사용하여 데이터베이스가 업데이트되는 PHP 파일에 응답을 보내고 페이지를 다시로드하지 않고 "감사합니다"라는 메시지가 나타납니다. 나는 기본적으로 드롭 다운 상자가 다른 AJAX 요청을 사용하여 "감사합니다"로 대체되도록 표시하는 DIV를 원합니다.
문제가있는 곳입니다. 첫 번째 AJAX 요청의 HTML 응답 내에서 AJAX 요청을 실행할 수없는 것 같습니다. JavaScript 함수가 실패합니다. 간단한 경고 ('hello world')조차도 작동하지 않습니다. 첫 번째 AJAX 요청을 호출하는 주 페이지에 JavaScript 함수를 배치하고 첫 번째 AJAX 요청의 HTML 응답으로 표시되는 PHP 파일에 배치하는 방법을 시도했지만 어떤 행운도 없었습니다. 호출 될 때 실행되지 않습니다.
외부에서 PHP 파일을로드하면 모든 것이 잘 작동하므로 JavaScript가 정확한지 알고 있습니다. PHP 응답 파일을 HTML 응답 DIV에로드 한 다음 JavaScript를 호출하면 작동하지 않습니다.
모든 것을 요약하면 AJAX 요청의 HTML 응답에서 어떻게 JavaScript 함수를 실행할 수 있습니까?
편집 : 여기에 내가 뭘 원하는지의 샘플은 다음과 같습니다
이 사람이 신고 링크를 클릭 할 때 DIV를 채우는 AJAX의 일부입니다 XMLHTTP의
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4)
{
document.getElementById(whichdiv).innerHTML=xmlhttp.responseText;
}
};
값. 에서 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