AJAX PHP не возвращает значение - PullRequest
0 голосов
/ 04 мая 2020

Я не уверен, что мне не хватает. Что-то не так с моим синтаксисом ниже? Я пытаюсь запросить ответ, используя форму HTML, а затем сопоставить ответ со значением сценария PHP.

<!DOCTYPE html>
<html>
    <head>
        <title>Verify Identity</title>
    </head>
<script>
        function verify(e) {
            if((e && e.keyCode == 13) || e == 0) {
                document.forms.verifyForm.submit();
                var golfer = document.getElementById("mgolf").value;
                // window.alert("You answered: " + golfer);
                //adding the ajax php call attempt 1 
                var xmlhttp = new XMLHttpRequest();
                xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    document.getElementById("servRes").innterHTML = this.responseText;
                }
                };
                xmlhttp.open("GET", "checkanswer.php?q=", true);
                // xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlhttp.send();
                }            
        }
</script>
<body>
    <h2>Welcome Ben</h2>
<div onKeyPress="return verify(event)">
    <form id="verifyForm" onsubmit="return false;">
    Question 1 text:</br> <input type="text" id="mgolf">
    </form>
</div>
<div id="test"> 
    <p id="servRes">replace</p>
    </div>
</body>
</html>

И PHP

<?php

//create correct answer for test question

$answer = "Ben";
$q = $_REQUEST["q"];

if($q == $answer) {
    echo "correct answer";
} else {
    echo "incorrect answer";
}
?>

1 Ответ

0 голосов
/ 04 мая 2020

Это не работает, потому что вы звоните .submit (); в элементе формы, который в результате обновляет страницу, и вы не видите результат XMLHttpRequest. Удаление этой строки и исправление 'innter HTML' заставит ваш код работать.

<!DOCTYPE html>
<html>
    <head>
        <title>Verify Identity</title>
    </head>
<script>
        function verify(e) {
            if((e && e.keyCode == 13) || e == 0) {
                // document.forms.verifyForm.submit();
                var golfer = document.getElementById("mgolf").value;
                // window.alert("You answered: " + golfer);
                //adding the ajax php call attempt 1 
                var xmlhttp = new XMLHttpRequest();
                xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    document.getElementById("servRes").innerHTML = this.responseText;
                }
                };
                xmlhttp.open("GET", "checkanswer.php?q=", true);
                // xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlhttp.send();
                }            
        }
</script>
<body>
    <h2>Welcome Ben</h2>
<div onKeyPress="return verify(event)">
    <form id="verifyForm" onsubmit="return false;">
    Question 1 text:</br> <input type="text" id="mgolf">
    </form>
</div>
<div id="test"> 
    <p id="servRes">replace</p>
    </div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...