如何使用外部php文件提交表单而不离开main index.php?
下面是我的html表单代码:如何使用外部php文件提交表单而不离开main index.php?,php,html,Php,Html,下面是我的html表单代码: <form id="login_form" action="login.php" method="POST"> <h2>Already a member? Sign in!</h2> <p>Username: <input type="text" name="username"></p> <p>Password: <input type="passwor
<form id="login_form" action="login.php" method="POST">
<h2>Already a member? Sign in!</h2>
<p>Username: <input type="text" name="username"></p>
<p>Password: <input type="password" name="password"></p>
<input type="submit" name="login_submit" value="Sign In">
</form>
已经是会员了?登录!
用户名:
密码:
我在页面顶部包含了外部“login.php”文件,如下所示:
<?php
include 'config.php';
if (isset($_POST["login_submit"]))
{
$username = $_POST["username"];
$password = $_POST["password"];
$query = "SELECT username, hashed_password FROM users WHERE username = '$username';";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
$rows_num = mysqli_num_rows($result);
if ($rows_num == 0) {
echo "This user doesn't exist!";
}
else {
$password_match = password_verify($password, $row['hashed_password']);
if (!$password_match) {
echo "The passwords do not match.";
}
else {
header("Location: index.php");
echo "Welcome ".$username."!";
}
}
}
?>
如果我正确理解了您的问题,您希望在不离开您所在页面的情况下提交表单。要做到这一点,您可以使用javascript发出xhr请求,或者更常见地将其视为ajax请求
jQuery不需要这样做,但它使它变得更容易
你的代码看起来很好,只是缺少了关键字来搜索是什么让神奇发生的。这种技术称为Ajax请求
。做一个谷歌搜索,你会发现成千上万的例子。这不是PHP自己能做到的。您需要使用JavaScript捕获表单submit并对php脚本执行ajax请求。您不能使用this
。您应该让脚本知道它的上下文:context:this
,然后才能使用this
好捕获!更新答案。虽然我似乎完全错过了OP想要做的事情,但我认为这个答案不再有用了:\
$( "#login_form" ).submit(function( event ) {
event.preventDefault();
var formdata = $( this ).serializeArray();
$.ajax({
type:"POST",
url:"login.php",
data: formdata,
success: function() {
// do something?
}
});
});