我现在正在疯狂地使用Ajax,有些东西我无法获得。
我希望用户输入他们的密码,然后输入他们的新密码两次,但我想使用Ajax将该数据发送到PHP脚本进行检查,并在需要时将新密码存储在数据库中。
我只是不明白如何将数据从HTML表单获取到Ajax脚本。我在互联网上看到的任何地方信息似乎都让我感到困惑,但更多的是,当我试图找到与我相关的Java相关产品的帮助时,似乎总是这样。
因此,阿贾克斯:
ajaxRequest.onreadystatechange = function()
{
if(ajaxRequest.readyState == 4){
//document.myForm.time.value = ajaxRequest.responseText;
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
var queryString = "?oldpass=" + oldpass + "&newpass=" + newpass + "&newpassretype=" + newpassretype;
ajaxRequest.open("post", "serverTime.php", true);
ajaxRequest.send(queryString); //Would use this to send post data (passwords) to the script
我错过了所有特定的东西,因为我确定你以前见过它。
<form>
<input type="password" name="oldpass" id="oldpass" />
<input type="password" name="newpass" id="newpass" />
<input type="password" name="newpassretype" id="newpassretype" />
<input type="submit" onclick="ajaxFunction('oldpass', 'newpass', 'newpassretype')" name="button2" id="button2" value="Change Password" />
<div id="txtHint"></div></form>
我想我在这里想念一些东西,但我不知道它是什么!任何想法?
谢谢你的时间,我希望这不是什么傻事。答案 0 :(得分:2)
只需改变这一行就可以了......
var queryString = "?oldpass=" + document.forms[0]["oldpass"].value +
"&newpass=" + document.forms[0]["newpass"].value +
"&newpassretype=" + document.forms[0]["newpassretype"].value;
虽然有两件事......
您在URL中传递了密码和确认信息。这不是必需的,因为您应该检查它们在客户端是否相同,而不是发送它们在服务器端进行检查。
您不应该在网址中发送密码信息,因为这是世界上最容易捕获的信息。
答案 1 :(得分:1)
您有传递给ajaxFunction
的硬编码字符串,您需要使用DOM访问表单字段并获取其值。您还需要对它们运行encodeURIComponent
,以便安全地放入查询字符串。