我已经创建了一个登录表单并试图使用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";
}
?>
它有什么问题吗?如果我使用一个选择框(虽然对登录无用)而不是输入框,代码工作正常。怎么可能? 谢谢
答案 0 :(得分:1)
您正在使用$ .get(),它使用jquery发送get请求。
你的php文件正在检查$ _POST vars。
答案 1 :(得分:1)
在表单上添加“action =”,并在此之后添加:
$('#button').click(function() {
$('#form').submit();
});
不是吗?
你正在使用GET并尝试恢复POST ..我认为这不正常。
答案 2 :(得分: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请求。
答案 3 :(得分:0)
将您的方法编辑为如下所示:
$("#button").click(function(event){
event.preventDefault();
// ...
});
或者,使用不会导致提交的按钮输入。
<input type="button" value="Log in" id="button">
由于该按钮是提交按钮,因此页面在GET响应到达之前执行表单提交。防止提交发生,您的代码应该有效。
答案 4 :(得分:0)
非常简单
$.ajax({
type: "POST",
cache:false,
async:true,
url: "index.php",
data: $('#id').serialize(),
success: function(data){
alert(data);
}
});
这里的id是你的表单id.try这很容易你可以做到