Javascript AJAX将数据发送到php文件
你好,我正在尝试在我的web应用程序中使用Ajax。但我有一个小问题。如果某个用户名已注册或未注册,我会尝试控制表单。但是我的JavaScript似乎没有向PHP发送$\u POST值。以及在我有$\u POST['user']的行中未定义该用户的响应 这是我的 PHP: 所以从技术上讲,它是ajax HTML:Javascript AJAX将数据发送到php文件,javascript,php,ajax,Javascript,Php,Ajax,你好,我正在尝试在我的web应用程序中使用Ajax。但我有一个小问题。如果某个用户名已注册或未注册,我会尝试控制表单。但是我的JavaScript似乎没有向PHP发送$\u POST值。以及在我有$\u POST['user']的行中未定义该用户的响应 这是我的 PHP: 所以从技术上讲,它是ajax HTML: 用户名: 我真的看不出有什么问题…您没有将用户名传递到PHP脚本中。您的PHP正在寻找一个POST变量,$\u POST['user']–在您的JavaScript中,您会发出
用户名:
我真的看不出有什么问题…您没有将用户名传递到PHP脚本中。您的PHP正在寻找一个POST变量,
$\u POST['user']
–在您的JavaScript中,您会发出一个GET请求,因此PHP脚本没有任何可查找的内容。基于编辑的问题:您没有向服务器发送任何键值对,只有一个值
您需要更改:
var u = document.getElementById("user").value;
致:
然后,该对将被正确发送:
request.send(u); // sends a single key-value pair
请注意,我刚刚添加了
encodeURIComponent
函数,以确保值正确编码。在ajax调用中使用“POST”而不是“GET”。@staddy\u-php仍然不知道什么是用户您的表单中没有alert\u text
id为什么会被注释掉<代码>/$dbh=新PDO($dsn、$user、$pswd、$opt)代码>给出了其他答案。看起来你只是在传递值,而不是键=>值对。见下面@jeroen的答案。是的,你是对的。我是用POST做的,我只是用GET做的。但是它或者不使用posit,听起来像是user
变量没有进入PHP脚本。如果您在网络选项卡中查看浏览器开发人员工具,您应该会看到对validation.php
的请求–发送了哪些参数?user
是否存在?表单数据用户:gusevvas,因此它发送了一些内容。并且不确定OP是否取消了对/$dbh=new PDO的注释($dsn,$user,$pswd,$opt)代码>-如果没有,它也没有连接。document.getElementById(“alert\u text”)
他们使用的是
,这里的关键词是class
,所以这永远不会发生。里面有很多虫子;-)也许吧,或者他出去给我们大家买咖啡和一杯丹麦酒,感谢我们的辛勤工作如果将返回1
和返回0
替换为回显“1”和回显“0”
,会发生什么情况?我已经有一段时间没有使用任何PHP了,但如果您的脚本没有回显任何内容,JavaScript可能什么都看不到。@Mattanderws终于!非常感谢。现在可以了!我把它改成了echo。非常感谢你!
<form id="check" name="signUp" method="post">
<p class="alert_text"></p>
<label for="user">Username:</label><br />
<input id="user" name="user" type="text" ><br />
</form>
var u = document.getElementById("user").value;
var u = 'user=' + encodeURIComponent(document.getElementById("user").value);
request.send(u); // sends a single key-value pair