php $ _REQUEST [] dosnt工作

时间:2017-09-02 17:48:07

标签: javascript php html ajax

我在html文件中有表单,它是文件正文

<form action="" method="post">       
    <input id="name" type="text" name="username" placeholder="username" required></br></br>
    <input id="password" type="password" name="password" placeholder="password" required></br></br>
    <p id="warn"></p></br></br>
    <input type="submit" value="Login" onclick="f()"></br>
</form>

<script>
function f() {
    var name = document.getElementById("name").value ;
    var password = document.getElementById("password").value ;
    var xttp = new XMLHttpRequest();
    xttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("warn").innerHTML = this.responseText ;             
        }
    };

    xttp.open("GET", "tst1.php?name="+name+"& password"+password, true);
    xttp.send();
}
</script>

我有php文件调用tst1.php

<?php 
    echo $_REQUEST["name"]+"...."+$_REQUEST["password"] 
?>

我试图使用ajax在p标签中显示输入的值,ID =&#34;警告&#34; 但它没有表现出来

2 个答案:

答案 0 :(得分:3)

您需要在代码中更改一些内容,例如:

  • echo $_REQUEST["name"]+"...."+$_REQUEST["password"]+不是连接运算符,.是。所以这句话应该是这样的:

    echo $_REQUEST["name"] . "...." . $_REQUEST["password"]; 
    
  • 在此语句=password后遗失xttp.open("GET", "tst1.php?name="+name+"& password"+password, true);个符号。这句话应该是这样的:

    xttp.open("GET", "post.php?name="+name+"&password="+password, true);
    
  • 在调用false函数后立即返回f(),否则页面会刷新,您将无法在<p id="warn"></p>看到输出值。

    <input ... onclick="f(); return false;">
    

答案 1 :(得分:0)

首先,您忘记了=密码等号

xttp.open("GET", "tst1.php?name="+name+"& password="+password, true);
xttp.send();

此外,您应该首先按照isset检查请求数据

$name = isset($_REQUEST["name"]): $_REQUEST["name"] : ""; 

同时将button中的提交按钮更改为submit以使ajax工作