Javascript php脚本无法使用锚标记验证数据

Javascript php脚本无法使用锚标记验证数据,javascript,php,html,Javascript,Php,Html,我有一个登录表单,我知道如何使用submit按钮从数据库提交数据以进行验证,但我想使用anchor标记提交数据,并且必须使用php进行验证,我所做的如下操作不起作用: index.php login_process.php 我知道您希望使用锚来提交表单,而不是使用按钮。有几种解决方案可以解决这个问题,但我要告诉您,使用锚来提交表单需要使用JavaScript来连接事件。这是不安全的,因为如果用户禁用了JavaScript,您将无法提交表单。最好让提交按钮看起来像锚,如下所示: <input

我有一个登录表单,我知道如何使用submit按钮从数据库提交数据以进行验证,但我想使用anchor标记提交数据,并且必须使用php进行验证,我所做的如下操作不起作用:

index.php

login_process.php


我知道您希望使用锚来提交表单,而不是使用按钮。有几种解决方案可以解决这个问题,但我要告诉您,使用锚来提交表单需要使用JavaScript来连接事件。这是不安全的,因为如果用户禁用了JavaScript,您将无法提交表单。最好让提交按钮看起来像锚,如下所示:

<input type="submit" class="submitAnchor" value="Submit">
现在,如果您确实坚持使用锚,您可以:

1.事件转发,当锚定事件点击被激活时,激活“提交事件点击”按钮:

<form name="form_lg" action="login_process.php" method="post" class="sign-form">
  ...
  <input type="submit" name="submit" value="Go" class="submit">
  <a href="#" onclick="form_lg['submit'].click()" class="btn btn_red">
     Register
  </a>
在这种情况下,您应该在login_process.php文件中更改这一行。而不是:

if(isset($_POST['submit'])){
这样做:

if($_POST['action']=='submit') {

希望对你有帮助

问题在于控件的名称。 在窗体中具有名为submit的控件将覆盖form.submit

浏览器控制台中的错误是.submit不是一个函数

所以,请用其他东西更改submit按钮的名称,它就可以正常工作了

<form class="sign-form" action="login_process.php" method="post" id="lg" name="form">
    <fieldset>
        <div class="row">
            <span class="text">
                <input type="email"  name="email"/>
            </span>
            <span class="text">
                <input type="password"  name="pwd"/>
            </span>
            <input type="submit" value="Go" name="submit" class="submit" id="btnSubmit" />
        </div>
        <div class="row">
            <label for="check-1">Remember me</label>
            <input type="checkbox" class="check" id="check-1" />
            <a href="chngpwd.html">Forgot your password?</a>

            <?php 
                if(isset($_GET['loginFailed']) && !empty($_GET['loginFailed'])) {
                    $msg=$_GET['loginFailed'];
                    echo $msg;
                }
            ?>
        </div>
    </fieldset>
    <div class="action_btns">
    <div class="one_half">
        <a href="#" class="btn back_btn"><i class="fa fa-angle-double-left"></i> Back</a>
        </div>
    <div class="one_half last">
        <a href="#" onclick="document.getElementById('btnSubmit').click()" class="btn btn_red" name="submit">Register</a>
        </div>
    </div>
</form>

试试吧,因为你的表格是lg,而不是lgss。哦!!这不是一个问题,只是因为按ctrl+s多次不确定是否是打字错误。你错过了after onclick=document.getElementById'lgss。提交不是问题,这是发布时的错误。你能更新你的问题,使其看起来像什么吗?用拼写错误发布代码是不好的。是的,现在它在login_process.php页面上跳转,但它不满足“ifisset$\u POST['submit']”这个条件,而且我仍然得到一个空白页面,而不是我的登录成功。phpI已经告诉过你,你没有得到任何$\u POST['submit'],因为你没有按任何按钮。检查其他变量,或者您必须按下按钮,因为submit不仅仅是一个输入名称。所以,只需使用其他检查来更改条件,比如isset$\u POST['email']或write var\u dump$\u POST;我删除了submit按钮,然后命名为anchor tag submit,当我点击anchor时,我跳转到login_process.php,但这是balnkNo,anchor tag不是输入。如果你想不惜任何代价在你的php中拥有$_POST[submit],请查看我的更新答案是的,现在它在login\u process.php页面上跳转,但它不满足“ifasset$_POST['submit']”这一条件,而且我得到的仍然是一个空白页面,而不是我的login\u success。phpI用另一个解决方案更新我的答案更容易。但是如果你坚持第一种解决方案,请告诉我,我会给你一个窍门。现在你使用输入类型,我想提交,而不使用输入类型,我想使用锚定标记提交。请在更新的答案中查看原因。我也给你两个技巧,你可以用在你想使用锚的情况下。如果你在某个步骤中遇到困难,或者你需要了解一些事情,请告诉我。
<form name="form_lg" action="login_process.php" method="post" class="sign-form">
  ...
  <input type="hidden" name="action" value="" />
  <a href="javascript:form_lg.submit()" onclick="form_lg['action'].value='submit'"
     class="btn btn_red">Register</a>
if(isset($_POST['submit'])){
if($_POST['action']=='submit') {
<form class="sign-form" action="login_process.php" method="post" id="lg" name="form">
    <fieldset>
        <div class="row">
            <span class="text">
                <input type="email"  name="email"/>
            </span>
            <span class="text">
                <input type="password"  name="pwd"/>
            </span>
            <input type="submit" value="Go" name="submit" class="submit" id="btnSubmit" />
        </div>
        <div class="row">
            <label for="check-1">Remember me</label>
            <input type="checkbox" class="check" id="check-1" />
            <a href="chngpwd.html">Forgot your password?</a>

            <?php 
                if(isset($_GET['loginFailed']) && !empty($_GET['loginFailed'])) {
                    $msg=$_GET['loginFailed'];
                    echo $msg;
                }
            ?>
        </div>
    </fieldset>
    <div class="action_btns">
    <div class="one_half">
        <a href="#" class="btn back_btn"><i class="fa fa-angle-double-left"></i> Back</a>
        </div>
    <div class="one_half last">
        <a href="#" onclick="document.getElementById('btnSubmit').click()" class="btn btn_red" name="submit">Register</a>
        </div>
    </div>
</form>