不是我想问的问题,但我真的需要另外一双眼睛,因为它一定是我想念的傻事。
我之前使用过相同的脚本,所以我不知道出了什么问题。
这是frnt结束代码:http://jsfiddle.net/fU3Q3/1/
后端PHP是:
<?php
require("../db.php");
// get the posted values
$email=$_POST['email'];
$password=$_POST['password'];
// now validating the username and password
$sql="SELECT * FROM admin WHERE email='".$email."'";
$result=mysql_query($sql) or die ("No such username exists!");
$row=mysql_fetch_array($result);
// if username exists
if(mysql_num_rows($result)>0)
{
// compare the password
if(strcmp($row['password'],$password)==0)
{
echo "yes";
// set the session from here
$_SESSION['email']=$email;
}
else
echo "no";
}
else
echo "no"; // invalid Login
?>
使用firebug,发送到ajax-login.php的url似乎是email=&password=&rand=0.636999888626322
,显然末尾的位是随机数。
非常感谢任何帮助。
马丁
答案 0 :(得分:2)
$.post("ajax-login.php",{ email:$("input#email").val(),password:$("input#password").val
(),rand:Math.random() } ,function(data)
您有2个相同类型的ID,电子邮件的div ID,电子邮件的输入ID,例如,您不能调用#email,因为它会在第一次出现时停止
有关进一步说明...没有关联类名的id被认为是唯一的,只有1 id可以使用,但如果你有:
<div class='content' id='email'>
<input class='content' id='email'>
您可以使用以下示例在jquery中调用它们:
正式声明,输入&gt;班级名称 '。' &GT; id'#'
$("div.content#email");
$("input.content#email");
如果没有匹配第一个标签
,这将无效$(".content#email");
$(".content#email");
答案 1 :(得分:2)
正如另一个所说不共享ID并试试这个:
取代:
{ email:$("#email").val(),password:$("#password").val(),rand:Math.random() }
与
$(this).parents("form").serialize()
答案 2 :(得分:1)
您的密码和电子邮件输入与包含它们的父div共享一个ID,如果您更改div ID,则表单应该有效。
NB :拥有多个与此名称相同的ID会使许多浏览器中的相关CSS和Javascript破坏,这是不好的做法。