AJAX联系表格发送空参数?

时间:2011-05-25 09:14:44

标签: php jquery post html-form

不是我想问的问题,但我真的需要另外一双眼睛,因为它一定是我想念的傻事。

我之前使用过相同的脚本,所以我不知道出了什么问题。

这是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,显然末尾的位是随机数。

非常感谢任何帮助。

马丁

3 个答案:

答案 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()

http://jsfiddle.net/sjD9q/

答案 2 :(得分:1)

您的密码和电子邮件输入与包含它们的父div共享一个ID,如果您更改div ID,则表单应该有效。

NB :拥有多个与此名称相同的ID会使许多浏览器中的相关CSS和Javascript破坏,这是不好的做法。