Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试了解更多关于XMLHttpRequest的细节_Php_Ajax - Fatal编程技术网

Php 尝试了解更多关于XMLHttpRequest的细节

Php 尝试了解更多关于XMLHttpRequest的细节,php,ajax,Php,Ajax,这就是我要做的。我有一个表单,其中一个值是用户名。我想检查数据库中是否已经存在该用户名。因此,我为表单设置了一个JavaScript函数作为onsubmit。在我的函数中 xhttp.open("POST","AjaxTest.php",false); xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhttp.send("Username=Leroy1981&Found=0");

这就是我要做的。我有一个表单,其中一个值是用户名。我想检查数据库中是否已经存在该用户名。因此,我为表单设置了一个JavaScript函数作为
onsubmit
。在我的函数中

xhttp.open("POST","AjaxTest.php",false);
xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhttp.send("Username=Leroy1981&Found=0");
A它指向正确的文件,但是我不知道如何访问send命令中发送的数据,而且我仍然不知道如何发送结果,一旦php文件检查了数据库中提供的用户名。用户名是表单中的输入类型,所以它被发送,但我得到了未定义的常量


另一个问题,如何在php文件中设置
XMLHttpRequest
响应?
我可能知道如何检索该响应并发送“find”或“Not Found”,但不知道如何在php文件中访问它。而且,完成后,它不会自动从php文件返回,这就是我所认为的工作方式。

您可以使用此函数调用您的文件

function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "AjaxTest.php?Username=Leroy1981", true);
  xhttp.send();
}
输出将在变量this.responseText中

您的PHP文件应该如下所示

$user = $_GET['User'];
//Your db operations
$yourResponse = "whatever you want";
echo $yourResponse; //This will be your responseText in JavaScript

另一个问题,如何在php文件中设置XMLHttpRequest响应?我可能知道如何检索它,只发送“find”或“notfound”,但不知道如何在php文件中访问它。另外,当它完成时,它不会自动从php文件返回,这就是我认为它是如何工作的。顺便说一句,对于web编程来说,这是一个全新的工作方式。如果这一部分不是显而易见的,我已经投票决定关闭它,因为它看起来是一个副本。如果不是这样,请用更多的代码编辑您的问题,包括您正在尝试的完整代码集,详细说明它不起作用的原因/位置,以便我们可以更好地帮助您。
xhttp.open(“POST”,“AjaxTest.php”,false)-您正在发出同步请求。这已被弃用,并在请求进行时锁定UI。不要这样做。“如何在php文件中设置XMLHttpRequest响应”-与在任何其他php文件中设置响应相同。请求是由JS触发的这一事实是不相关的。因此,我在php脚本末尾的回应是responseText中的内容?我想我可以使用GET发送用户名,如果数据库中还没有,$_POST['username]设置为空,谢谢你提供的信息。查了一下,发现情况就是这样。关于echo设置响应ExtIf我的答案帮助您标记它,以便具有相同问题的其他人可以看到它