Home > Net >  Why does httpr.send() always fail?
Why does httpr.send() always fail?

Time:10-12

I had similar code run before but now i've lost it. No matter what I do, it will never run the php code.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function kosarica() {
        var vrednost = "Itworks!";
        var httpr=new XMLHttpRequest();
        httpr.open("POST","izpis3.php",true);
        httpr.setRequestHeader("Content-type","aplication/x-www-form-urlencode");
        httpr.onreadystatechange=function(){
            if(httpr.readyState==4 && httpr.status ==200){
                document.getElementById("responce").innerHTML=httpr.responseText;
            }
            httpr.send("vrednost" vrednost);
        }
    }
    </script>
</head>
<body>
    
    <p id="responce">a</p>
    <button onclick="kosarica()">Click me</button>
    
</body>
</html>

PHP Code:

<?php
    echo $_POST['vrednost'];
?>

I know that I can make code for this example all in javascript but I want to run more php code where it access my database.

CodePudding user response:

  • It does not fail, but it does never happen. You need to move the send() outside the handler.
  • The content type is wrong.
  • You need to use an equal sign to make it a variable for PHP.
  • Please do not use var keyword. Use const for a constant or let for a variable.
function kosarica() {
    const vrednost = "Itworks!";
    const httpr = new XMLHttpRequest();
    httpr.open("POST", "izpis3.php", true);
    httpr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    httpr.onreadystatechange = function () {
        if (httpr.readyState === 4 && httpr.status === 200) {
            document.getElementById("responce").innerHTML = httpr.responseText;
        }
    }
    httpr.send("vrednost="   vrednost);
}
  • Related