私はコメントを表示するWebページを持っています。ユーザーは不適切なコメントを報告するために 'Flag'リンクをクリックすることができます。AJAXからのJavascript関数の実行 - HTML応答
[フラグ]リンクをクリックすると、AJAXとinnerHTMLを使用して、コメントの下にドロップダウンボックスを理由コードとともに表示します。迷惑メール、攻撃的、トピックとは無関係、キャンセルボタンなどがあります。
[Submit]をクリックすると、別のAJAXリクエストを使用してデータベースが更新されたPHPファイルに応答を送信し、ページを再読み込みせずに「ありがとうございました」というメッセージが表示されます。私は本質的に、ドロップダウンボックスを表示するDIVが、別のAJAXリクエストを使用して「ありがとう」に置き換えられることを望みます。
これは問題の原因です。最初のAJAXリクエストからHTMLレスポンス内でAJAXリクエストを実行することはできないようです。 JavaScript関数は失敗します。単純な警告( 'hello world')さえ動作しません。最初のAJAXリクエストを呼び出すメインページにJavaScript関数を配置してみましたが、最初のAJAXリクエストからのHTMLレスポンスとして表示されるPHPファイルに配置しましたが、何の役にも立たなかった呼び出されたときに実行されません。
PHPファイルを外部に読み込むとすべてうまく動作するので、JavaScriptが正しいことがわかります。 PHPのファイルをHTMLレスポンスDIVに読み込んだ後、そこからJavaScriptを呼び出すと動作しません。
したがって、すべてをまとめると、AJAXリクエストのHTMLレスポンスからどのようにJavaScript関数を実行しますか?
編集:ここでは、私が何をしたいのサンプルです:XMLHTTPの
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4)
{
document.getElementById(whichdiv).innerHTML=xmlhttp.responseText;
}
};
値:
これは、人が旗リンクをクリックDIVを移入するAJAXの一部です。 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