2

我最近接触了 jQuery,这是我第一次使用它,但我已经用它在我的网站上进行了重大改进。(淡入页面、切换等)

所以基本上,我想用它制作一个登录表单,但即使在研究过它之后我也不知道如何使用 $.post 。

<form action="" method="post">
 <input type="text" id="username">
 <input type="password" id="password">
 <input type="submit" id="log" value="Log in">
</form>

是的,这就是我现在所处的位置,我想要一个花哨的淡入淡出动画来记录日志。[或至少没有页面加载]

编辑:现在看起来像这样,它正在输出“失败”。即使我输入了正确的组合

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function (){
$("#loginform").submit(function(event) {
        event.preventDefault(); 
        $.post('login.php', function(data) {
            $('body').hide();
        $('body').html(data).show('fast');
    });
});
});
</script>
 </head>
<body>
  <div id="all">
 <form action="" method="post" id="loginform">
  <input type="text" id="username"><br>
  <input type="password" id="password"><br>
  <input type="submit" id="log" value="Log in">
</form>
</div>

登录.php:

<?php
 $un = $_POST['username'];
 $pw = $_POST['password'];
 if($un == "huwil" and $pw == "test") {
  echo "logged.";
 } else {
   echo "failed.";
 }
?>
4

3 回答 3

0
$("#formIdorName").submit(function(event) {
    event.preventDefault(); 
    $.post('url', function(data) { // where `url` is the php page that handles your logic
     $('.result').html(data);// `data` is returned from server
   });
});



<form action="/" id="formIdorName">
 <input type="text" name="login" />
 <input type="submit" value="submit" />
</form>

<div id='result' />
于 2012-05-28T08:01:56.757 回答
0

实际上可以在登录后加载页面而无需刷新,但我不确定是否与 cookie 等有关

$.post可以通过多种方式调用,在您的情况下,您需要:

$.post(url, parameters_to_send_to_server, callback_function)

所以:

$.post('login.php', $('#formId').serialize(), function(html) {
    $('body').hide();
    $('body').html(html).show('fast');
});

$('#formId').serialize()form从id获取所有数据,将其#formId打包成一个字符串,然后发送到服务器,因此在您的 php 中,您可以访问它,只要 AJAX 请求完成$_POST['input_name'],就会运行。callback_function

于 2012-05-28T08:08:24.963 回答
0

关于即使使用正确的组合它也不起作用:我认为你需要一个 name 属性来 POST: <input type="password" id="password" name="password">

只是您可能会考虑的一件额外的小事:您可以在同一页面上登录。

<?php if($_POST) { //if there's incoming POST data
 $un = $_POST['username'];
 $pw = $_POST['password'];
 if($un == "huwil" and $pw == "test") {
  echo "logged.";
 } else {
   echo "failed. <a href='/login.php'>retry</a>.";
 }
} else { //or if there's not
?>
<!--login form-->
<?php } ?>
于 2012-05-28T08:47:21.397 回答