2

私は最近jQueryに夢中になり、それを使用するのは初めてですが、それを使用してWebサイトを大幅に改善しました。(フェードインページ、スイッチなど)

なので、基本的にはログインフォームを作りたいのですが、調べてみても$.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>

login.php:

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

3 に答える 3

0

正しいコンボでも機能しない方法について: POST: の name 属性が必要だと思います<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 に答える
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 に答える