2014-11-05 52 views
0

我有一个HTML页面设置为一个形式如下:困惑的动作标签

<form name="form" action="process.php" method="POST"> 
    Username: <input type="text" name="user"> 
    <br> 
    Password: <input type="text" name="pass"> 
    <br> 
    <input type="submit" value="LOGIN"> 
</form> 

当我点击我的提交按钮,将数据发送到我的process.php脚本,这是一切都很好。

但我想要做的就是发送一个JSON字符串PHP脚本,而是和有PHP脚本解析它。 因此我尝试了以下内容:

<body> 
PLEASE ENTER YOUR INFORMATION: 
<form name="form" action=""> 
    Username: <input type="text" name="user"> 
    <br> 
    Password: <input type="text" name="pass"> 
    <br> 
    <input type="submit" value="LOGIN" onclick="encrypt(this.form, 0)"> 
</form> 
</body> 


<script LANGUAGE="JavaScript"> 

function encrypt(form, key){ 

    var user = form.user.value; 
    var pass = form.pass.value; 
    var str = {"username": user, "encrypted_password": pass}; 
    var JSON_str = JSON.stringify(str); 

    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "process.php", true); 
    xhr.send(JSON_str); 

} 

</script> 

然而,这好好尝试一下做任何事情。当我点击提交按钮时没有任何反应。即使我点击“提交”按钮时,只能得到process.php来显示某些内容,那也是非常有用的。

谢谢!

+0

你能提供一些上下文吗?为什么作为json字符串发送? – Ghost 2014-11-05 03:43:54

+0

您应该看看AJAX调用,您可能会觉得它很有趣! – Philibobby 2014-11-05 03:45:36

+0

恐怕我是javascript/php的noob,所以我没有理由说为什么作为JSON字符串发送会比表单数据更差/更好。 我只对将数据发布到脚本后发生的情况感到困惑。 在我看来,action =“process.php”告诉浏览器运行该脚本,但只发布JSON字符串“发送”字符串。 我怎样才能让它运行php脚本?谢谢 – 2014-11-05 03:50:20

回答

2

如果你想使用onclick事件,那么你就需要更换按钮提交。

<input type="button" value="LOGIN" onclick="encrypt(this.form, 0)"> 

并使用javascript提交表单。

+0

谢谢,但你能解释我怎样才能避免提交表单与JavaScript?我想发送一个JSON字符串到我的PHP脚本并让它运行。现在即使我点击我的按钮,也没有任何反应。我留在同一页面上。 – 2014-11-05 03:55:13

+0

如果您使用type =“button”,您的表单将不会提交。要提交表单usig,您需要编写代码。 – 2014-11-05 09:03:48