无法使用jQuery将文本字段值发送到PHP文件

时间:2010-08-06 08:28:54

标签: php jquery mysql

我想使用jQuery将此textfield值发送到php文件。

HTML code:

<div>
    <label for="email">Email: </label>
    <input type="text" id="email" name="email" />
    <span id="msgbox" class="msgbox"></span>
</div>

jQuery代码:

$(document).ready(function()
{
    $("#email").blur(function()
    {
        $("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");

        $.post("availability.php", { email: $(this).val() }, function(data)
        {
            if(data == 'yes')
            {
                $("#msgbox").fadeTo(200, 0.1, function()
                { 
                    $(this).html('Email Already exists').addClass('messageboxerror').fadeTo(900,1);
                });  
            }
            else
            {
                $("#msgbox").fadeTo(200, 0.1, function()
                { 
                    $(this).html('Email available to register').addClass('messageboxok').fadeTo(900,1); 
                });
            }
        });
    });
});

PHP代码:

include_once $_SERVER['DOCUMENT_ROOT'] . '/braddclient/includes/magicquotes.inc.php';
include $_SERVER['DOCUMENT_ROOT'] . '/braddclient/includes/db.inc.php';

$email = mysqli_real_escape_string($link, $_POST['email']);

$sql = "SELECT * FROM bradduser WHERE email='$email'";
$result = mysqli_query($link, $sql);

if(!$result)
{
    $error = 'Error fetching email from bradduser.';
    include 'error.html.php';
    exit();
}

if(mysqli_num_rows($result) > 0)
{ 
    echo ‘yes’; //email already exist
} 
else 
{
    echo ‘no’;
}

代码的问题是,这似乎不是jquery和php之间的通信。数据拒绝发送到php。请帮忙看看代码有什么问题。

2 个答案:

答案 0 :(得分:2)

echo ‘yes’;不是有效的sintax

尝试:

单引号

echo 'yes';

你的jQuery脚本没问题,但我认为你有availability.php

的问题

答案 1 :(得分:1)

乍一看它看起来是正确的,所以要看几件事情:

  • “availability.php”在哪里?它是否与运行jQuery脚本的页面位于同一文件夹中?如果不是,你将需要改变路径,例如“/availability.php”,如果它在站点根目录中,或者“/folder/availability.php”,如果它在子文件夹中。
  • 如果您还没有,请使用Firefox和Firebug; Firebug将向您显示从页面发出的任何AJAX请求,以及服务器返回的内容 - 非常有用。