Ajax,如何从HTML表单中获取数据

时间:2012-01-12 15:16:39

标签: javascript html ajax html-form

我现在正在疯狂地使用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>

我想我在这里想念一些东西,但我不知道它是什么!任何想法?

谢谢你的时间,我希望这不是什么傻事。

2 个答案:

答案 0 :(得分:2)

只需改变这一行就可以了......

var queryString = "?oldpass=" + document.forms[0]["oldpass"].value +
    "&newpass=" + document.forms[0]["newpass"].value +
    "&newpassretype=" + document.forms[0]["newpassretype"].value;

虽然有两件事......

  1. 您在URL中传递了密码确认信息。这不是必需的,因为您应该检查它们在客户端是否相同,而不是发送它们在服务器端进行检查。

  2. 您不应该在网址中发送密码信息,因为这是世界上最容易捕获的信息。

答案 1 :(得分:1)

您有传递给ajaxFunction的硬编码字符串,您需要使用DOM访问表单字段并获取其值。您还需要对它们运行encodeURIComponent,以便安全地放入查询字符串。