AjaxレスポンスでJSスクリプトを呼び出したい。それは、document.getElementById
スクリプトをAjax responseTextに渡すことです。AjaxレスポンスからJavascriptスクリプトを実行
現在のコードは、私は、このエラーを返します:Uncaught TypeError: Cannot set property 'innerHTML' of null
は、これは、Visual Studioのコルドバで行われます。..
アヤックス:
$("#loginBtn").click(function() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.write(this.responseText);
}
}
xmlhttp.open("POST", "http://www.sampleee.esy.es/login.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("username=" + username + "&" + "password=" + password);
});
PHP:
if($count == 1){
echo "document.getElementById('alertBox').innerHTML = 'Login Success!';
document.getElementById('alertBox').className = 'alert alert-success';
document.getElementById('alertBox').style.display = 'block';
setTimeout(function() {
window.location.href = '../html/dashboard.html';
}, 1000);
";
}else{
echo "document.getElementById('alertBox').innerHTML = 'Invalid login details';
document.getElementById('alertBox').className = 'alert alert-danger';
document.getElementById('alertBox').style.display = 'block';
";
}
idが 'alertBox'の要素は、アクセスするときにDOMになく、' innerHTML'を設定しようとします。あなたはajax呼び出しの前にそれをどこかに追加していますか?そうでない場合は、まずそれを行う必要があります。 – varontron
PHPが成功/失敗インジケータを返すだけで、既存のAjax JSテストで値を返し、適切なクラスに適切なメッセージを表示することが簡単になると思います。また、jQueryを使用しているので、なぜ '$ .ajax()'を使用するのではなく、あなた自身のAjax呼び出しを手作業でコーディングしていますか? – nnnnnn
スクリプト要素を作成してレスポンスのテキストを追加し、DOMに要素を追加する必要があります。 –