我有一个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来显示某些内容,那也是非常有用的。
谢谢!
你能提供一些上下文吗?为什么作为json字符串发送? – Ghost 2014-11-05 03:43:54
您应该看看AJAX调用,您可能会觉得它很有趣! – Philibobby 2014-11-05 03:45:36
恐怕我是javascript/php的noob,所以我没有理由说为什么作为JSON字符串发送会比表单数据更差/更好。 我只对将数据发布到脚本后发生的情况感到困惑。 在我看来,action =“process.php”告诉浏览器运行该脚本,但只发布JSON字符串“发送”字符串。 我怎样才能让它运行php脚本?谢谢 – 2014-11-05 03:50:20