0

我创建了一个登录表单并尝试使用 jquery 提交它,但它不起作用。我搜索了谷歌,但所有方法都有点复杂。这是我的代码

<form id="form1">
<p>Username<p/>
<input type="text" id="username"/>
<p>Password</p>
<input type="password" id="password"/>
<p><input type="Submit" value="Log in" id="button"></p>
</form>

<script type="text/javascript" src="jquery.js"></script>
<script>

$("#button").click(function(){

var username=$("#username").val();
var password=$("#password").val();

$.get("signing.php",{'username':username,'password':password},function(response){
alert(response);
});

});

</script>

我的php文件是这样的

<?php

session_start();

$username=$_POST['username'];
$password=$_POST['password'];

include 'model/existusername.php';//This is used to connect to database and find the user

if (existusername($username,$password))
{
$_SESSION['username']=$username;
echo "loged in";  
}
else
{
echo "not loged in"; 
}

?>

有什么问题吗?如果我使用选择框(尽管对登录没有用)而不是输入框,则代码可以正常工作。这怎么可能?谢谢

4

5 回答 5

1

您正在使用 $.get() 它使用 jquery 发送获取请求。

您的 php 文件正在检查 $_POST 变量。

于 2012-07-04T13:27:34.163 回答
1

在您的表单上添加一个“action =”,然后在类似的内容之后:

$('#button').click(function() {
  $('#form').submit();
});

不 ?

而您正在使用 GET 并尝试恢复 POST ..我认为这不正常。

于 2012-07-04T13:27:38.197 回答
0
<form id="form1" method="post" action="pathToYourPhpScript">
 <p>Username<p/>
 <input type="text" id="username"/>
 <p>Password</p>
 <input type="password" id="password"/>
 <p><input type="Submit" value="Log in" id="button"></p>
</form>

您必须记住选择方法,并在表单开始标记中探测操作。

作为标准,数据是通过 GET 请求发送的,并且您正在尝试从帖子中读取。

我提供的示例没有 AJAX,但同样,如果您想让它与 ajax 一起使用,您必须更改您的 javascript 以执行 POST 请求。

于 2012-07-04T13:27:06.813 回答
0

编辑您的方法,使其如下所示:

$("#button").click(function(event){
    event.preventDefault();

    // ...
});

或者,使用不会导致提交的按钮输入。

<input type="button" value="Log in" id="button">

由于该按钮是提交按钮,因此页面在 GET 响应到达之前执行表单提交。防止提交发生,您的代码应该可以工作。

于 2012-07-05T15:16:23.283 回答
0

这很简单

$.ajax({
                        type: "POST",
                        cache:false,
                        async:true,
                        url: "index.php",   
                        data: $('#id').serialize(),                         
                        success: function(data){
                            alert(data);
                        }
            });

这里 id 是你的表单 id。试试这个很容易你可以做到

于 2012-07-11T10:20:47.023 回答