1

在检查用户的登录详细信息时,我一直在尝试了解 jQuery 的工作原理。我创建了这些页面:

  1. db.php(数据库连接)
  2. signin.html(登录表单)
  3. check.php(登录检查 - MySQL 选择)
  4. myscript.js (jQuery)

登录表格:

<script src="js/jquery.min.js"></script>
<script src="js/myscript.js"></script>

<div id="loginForm">
 <label>Please Login</label><br/>
 <form id="myForm" action="check.php" method="post">
 <input name="emailid" id="email" type="text" placeholder="Enter your Email ID"/><br/>
 <input name="password" id="pass" type="password" placeholder="Enter your password"/><br/>
 <button id="submit"> Login</button>
 </form>
</div>
<div id="ack"></div>

myscript.js

 $(document).ready(function (){
   $("#submit").click(function (){
        alert("hi");
        if($("#email").val()==""||$("#pass").val()=="")
            $("div#ack").html("please enter email and pass");
        else
            $.post( $("#myForm").attr("action"), 
                    $("#myForm :input").serializeArray(),
                    function(data){
                        $("div#ack").html(data);
                    });
        $("#myForm").submit( function(){
            return false;
        });
     });
    });

检查.php

$email = $_POST['emailid'];
$pass = $_POST['password'];
include "db.php";
$sql = "select count(*)from students where email = '$email' and password = '$pass';";
$result = mysqli_query($con,$sql);
$row=mysqli_fetch_array($result);
if($row[0]>0)
    echo "found result";
else
    echo "no result";

一切正常。唯一的问题是数据没有被发布。$_POST[] 正在接收空值,即使我正在输入值。

请帮忙。

4

4 回答 4

4

更改了代码,它现在可以工作了。感谢您的投入。

我发布了错误的数据。

  $(document).ready(function (){
  $("button#submit").click(function (){
        alert("hi");
        e = $("#email").val();
        p = $("#pass").val();
        if($("#email").val()==""||$("#pass").val()=="")
            $("div#ack").html("please enter email and pass");
        else
            $.post( $("#myForm").attr("action"), 
                    //$("#myForm :input").serializeArray(),
                    {emailid: e, password: p},
                    function(data){
                        $("div#ack").html(data);
                    });
        $("#myForm").submit( function(){
            return false;
        });
     });
});
于 2013-09-24T12:36:29.083 回答
0

将 action="javascript:void(0)" 放入表单标签中,一切正常

于 2014-01-28T15:20:49.200 回答
0

你应该逃避这些输入。你永远不能相信用户输入。

<?php
$name = mysqli_real_escape_string($_POST['emailid']);
$password = mysqli_real_escape_string($_POST['password']);
?>

请记住,您很可能需要包含活动的数据库连接。

您应该发布到正确的文件,在您的表单中,您需要将操作从login.php更改为check.php

于 2013-09-24T12:10:32.033 回答
0

更改表单操作

<form id="myForm" action="login.php" method="post">

<form id="myForm" action="check.php" method="post">
于 2013-09-24T12:00:50.443 回答