我想用PHP制作登录页面。
想要使用按钮,但它不起作用 它看起来只是刷新页面。
我在表单中尝试了按钮标记 我怎样才能使这个有效?
<?php
include "login.php";
?>
<form method="post" id="sign">
<div class="mdl-textfield mdl-js-textfield">
<input class="mdl-textfield__input" type="email" name="user_mail" id="user_mail" value="<?php echo addslashes($_POST['user_mail'] ?? '') ?>">
<label class="mdl-textfield__label" for="user_mail">Email</label>
</div>
<div class="mdl-textfield mdl-js-textfield">
<input class="mdl-textfield__input" type="password" name="passcode" id="passcode" value="<?php echo addslashes($_POST['passcode'] ?? '') ?>">
<label class="mdl-textfield__label" for="passcode">Password</label>
</div>
</form>
//this <input> works
<input type="submit" name="signup" form="sign"/>
//I want to use this <button>
<button type="submit" name"signup" form "sign" formmethod="post"></button>
<?php
if ($error ?? '') {
echo addslashes($error);
}
的login.php
if ($_POST['signup'] ?? '') {
$error = '';
if (!$_POST['user_mail']) $error .= "<br />Please enter email";
else if (!filter_var($_POST['user_mail'], FILTER_VALIDATE_EMAIL)) $error .= "<br />Please enter valid email";
if (!$_POST['passcode']) $error .= "<br />Please enter password";
else {
if (strlen($_POST['passcode']) < 8) $error .= "<br />Please enter a password more than eight";
if (!preg_match('`[A-Z]`', $_POST['passcode'])) $error .= "<br />please least one capital letter";
}
if ($error) $error = "there were errors:" . $error;
答案 0 :(得分:0)
<button>
表示在页面上放置一个按钮并执行onclick
方法中的任何内容。 <submit>
提交表单。
如果您想要一个按钮来汇总表单,请使用按钮的onclick
方法进行操作。你为什么不能使用提交?
点击此处,他们使用了<a onclick='...'
链接,但您可以为按钮执行相同操作:How to submit a form with JavaScript by clicking a link?
正如@Arun在下面所说,你可以使用:
您的表单中也有 <button type='submit'>
。有很多方法可以做,所以我唯一的建议是保持一致。我习惯使用input
,这样我的代码中就没有一堆混合约定。
答案 1 :(得分:0)
如果您想在按钮上单击提交表单,请使用jquery添加按钮的单击事件并提交如下表单:
HTML:
<button type="submit" name"signup" id="btn_submit" value="submit" >Submit</button>
Jquery的:
$("#btn_submit").click(function() {
$("#sign").submit(); // submit a form
});
答案 2 :(得分:0)
我认为您需要对表单元素执行操作:
<form method="post" id="sign" action="login.php">
我不懂PHP,所以我可能错了。
答案 3 :(得分:0)
您需要进行2次更改:
action
属性button
元素。您无法期望页面上的任何按钮都能提交您的表单。它必须位于与之关联的表单内。 <form method="post" id="sign" action="form-destination.php">
<div class="mdl-textfield mdl-js-textfield">
<input class="mdl-textfield__input" type="email" name="user_mail" id="user_mail" value="<?php echo addslashes($_POST['user_mail'] ?? '') ?>">
<label class="mdl-textfield__label" for="user_mail">Email</label>
</div>
<div class="mdl-textfield mdl-js-textfield">
<input class="mdl-textfield__input" type="password" name="passcode" id="passcode" value="<?php echo addslashes($_POST['passcode'] ?? '') ?>">
<label class="mdl-textfield__label" for="passcode">Password</label>
</div>
<button type="submit" name"signup" form "sign" formmethod="post"></button>
</form>
<?php
if ($error ?? '') {
echo addslashes($error);
}
?>