基本的に、Ajaxを使用する場合、PHPスクリプト内でJavascript関数を呼び出そうとしています。
JavaScript:
<script type="text/javascript">
function Validate() {
hr = new XMLHttpRequest();
name = document.getElementById('name').value;
hr.open('POST', 'validator.php', true);
hr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
hr.onreadystatechange = function() {
if ( hr.readyState == 4 && hr.status == 200 ) {
document.getElementById('message').innerHTML = hr.responseText;
}
}
hr.send('name=' + name);
}
function disable() {
document.getElementById('message').innerHTML = '';
}
</script>
HTML:
<div id="message"></div>
Name: <input type="text" id="name /">
<input type="button" onclick="Validate();" value="Validate" />
PHP:
<?php
$name = $_POST['name'];
if ( !empty( $name ) ) {
if ( $name == 'Tom' ) {
echo "<script>alert('Hello Tom, Welcome Back')</script>";
} else {
echo 'You are not Tom';
}
} else {
echo 'Please enter a name.';
}
?>
PHP内でJavascript関数を呼び出すことを除いて、すべて正常に動作しますecho <script>alert()</script>
ここで問題があると思うのは、 を宣言hr.responseText
した結果、表示したい JavaScript がテキストに戻ってしまったためです。しかし、この問題を解決するにはどうすればよいですか?
どんな助けでも大歓迎です。