单个页面上的两个表单:如何使用jquery ajax函数识别哪个表单验证

时间:2014-10-24 09:13:37

标签: javascript php jquery ajax

我有一个包含

的html页面
  1. 包含注册字段的表单(注册/新成员)
  2. 用于登录的表单(已登录已成员)
  3. 登录表格是:

    <form class="dialog-form">
        <div class="form-group">
            <label>E-mail</label>
            <input type="text" placeholder="email@domain.com" class="form-control">
        </div>
        <div class="form-group">
            <label>PAssword</label>
            <input type="password" placeholder="My PAssword" class="form-control">
        </div>
        <input type="submit" name="sign_in" value="Connexion" class="btn btn-primary">
    </form>
    

    注册表格是:

       <form class="dialog-form" action="bat/user_validation.php" method="post">
            <div class="form-group">
                <label>E-mail</label>
                <input type="text" placeholder="email@domain.com" class="form-control">
            </div>
            <div class="form-group">
                <label>Password</label>
                <input type="password" placeholder="My secret password" class="form-control">
            </div>
            <div class="form-group">
                <label>Repeat Password</label>
                <input type="password" placeholder="Type your password again" class="form-control">
            </div>
            <input type="submit" name="sign_up" value="Inscription" class="btn btn-primary">
        </form>
    

    另一方面,我有一个php脚本文件,其中包含检查和插入用户ID的功能。

        function getPassword($utilisateur) {
            try {
            $dbh = new PDO(DSN, USER, PASS);
            $uid = $utilisateur;
            $sql = "SELECT password FROM cc_users WHERE uid =:uid";
            $sth = $dbh->prepare($sql);
            $sth->execute(array(':uid'=>$uid));
            $result = $sth->fetchAll();
                return (count($result) == 1) ;
            } catch (PDOException $e) {
                print "Erreur ! : " . $e->getMessage() . "<br/>";
                die();
            }   
        }
    
        function setPassword($uid, $pass) {
            $dbh = new PDO(DSN, USER, PASS);
            $sql = "UPDATE cc_users SET password =:pass where uid =:uid";
            $sth = $dbh->prepare($sql);
            $sth->execute(array(':pass'=>$pass ,':uid'=>$uid));
            echo $count = $sth->rowCount();
            return $dbh->exec($sql);
        }
    
        function newPassword($utilisateur, $pass) {
            $crypt = crypt($pass);
            return setPassword($utilisateur, $crypt);
        }
    
        function checkPassword($utilisateur, $pass) {
            if (empty($pass)) return FALSE;
            $interne = getPassword($utilisateur);
            $crypt = crypt($pass, $interne);
            return ($interne === $crypt);
        }
    print_r($_POST);
    

    我的问题是: 我如何检查用户来自哪种表格? 如何检查表单的$ .ajax调用?如果有,怎么样? 感谢

3 个答案:

答案 0 :(得分:0)

<强> HTML

Form 1:
<form id="form1">
    <input type="submit" value="submit" />
</form>
Form 2:
<form id="form2">
    <input type="submit" value="submit" />
</form>

<强>的jQuery

$('form').on('submit', function () {
    console.log($(this).attr('id')); // Logs the id of the submitted form
});

答案 1 :(得分:-1)

<form>

命名
<form class="dialog-form" name="signin">

<form class="dialog-form" action="bat/user_validation.php" method="post" name="signup">

答案 2 :(得分:-1)

您可以检查$_POST全球,看它是否包含<input type="submit" />的名称。它将包含sign_upsign_in,具体取决于用户按下的按钮。

例如:

if(isset($_POST['sign_up']){
    $signingUp = true;
}

如果您想使用jQuery ajax提交表单,可以使用以下代码段:

$.post('bat/user_validation.php', $('form.dialog-form').serialize());

虽然选择器应该更具体,但可能包括一个表单ID来区分这两种形式。