Контактная форма AJAX отправляет пустые параметры? - PullRequest
1 голос
/ 25 мая 2011

Не вопрос, который я хочу задать, но мне действительно нужна другая пара глаз, потому что это должно быть что-то глупое, что мне не хватает.

Я использовал этот же сценарий ранее, так что я понятия не имею,что происходит не так.

Это код конца 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, URL-адрес, который отправляется наajax-login.php, по-видимому, email=&password=&rand=0.636999888626322, где, очевидно, бит на конце - это случайное число.

Любая помощь очень ценится.

Мартин

Ответы [ 3 ]

2 голосов
/ 25 мая 2011

как сказал другой, не разделяйте идентификаторы и попробуйте это:

заменить:

{ email:$("#email").val(),password:$("#password").val(),rand:Math.random() }

с

$(this).parents("form").serialize()

http://jsfiddle.net/sjD9q/

2 голосов
/ 25 мая 2011
$.post("ajax-login.php",{ email:$("input#email").val(),password:$("input#password").val
(),rand:Math.random() } ,function(data)

у вас есть 2 идентификатора одного типа, идентификатор div электронной почты, например, идентификатор ввода email, вы не можете вызвать #email, так как он остановится при первом появлении

Длядальнейшее объяснение ... идентификаторы без связанных имен классов считаются уникальными, однако можно использовать только 1 идентификатор, если у вас есть:

<div class='content' id='email'>
<input class='content' id='email'>

, вы можете вызвать их в jquery, используя следующие примеры:

формальное объявление, тип> имя класса '.'> id '#'

$("div.content#email");
$("input.content#email");

, и это не будет работать без сопоставления с первым тегом

$(".content#email");
$(".content#email");
1 голос
/ 25 мая 2011

Вы вводите пароль и адрес электронной почты, разделяя идентификатор с родительскими элементами div, которые их содержат, если вы измените идентификатор div, то форма должна работать.

NB : Это плохая практиканаличие нескольких идентификаторов с одинаковыми именами может привести к поломке соответствующих CSS и Javascript во многих браузерах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...