将jQuery值传递给PHP函数

时间:2013-01-20 12:02:20

标签: php jquery

我正在尝试在用户在表单字段中编写电子邮件时创建gravatar自动加载。现在,我已经有了php功能,它将生成带有所需参数的gravatar url,它可以在整个网站上运行。

现在,当用户键入有效的电子邮件时,我应该调用jQuery:

image.attr("src", "<?=$this->Gravatar(" + input.attr('value') + ");?>");

但这可以将此参数传递给PHP函数吗?

2 个答案:

答案 0 :(得分:4)

您将需要jQuery的ajax()功能。在您的JavaScript中,您需要查看期望它的外部PHP脚本的值。

<强> jQuery的:

$('.email').keyup(function() {
   $.ajax({
     type: "POST",
     url: "/path/to/your/script.php",
     data: { email: this.value }
   }).done(function( data ) {
     alert( data );
   });
});

<强> PHP:

if (isset($_POST['email'])) {

    // DB call - you'll need to replace with your own functionality
    // Make sure you sanitize input

    if (check_record_exists($_POST['email'])) {
       echo 'This e-mail is already being used';
    } else {
       echo 'This e-mail is fine';
    }
} else {
   echo 'No e-mail specified';
}

答案 1 :(得分:0)

如果我理解得很好,你想做以下事情:

  • 用户输入虚假电子邮件
  • 从PHP函数中获取Gravatar而不进行extrat请求

如果没有对服务器的任何请求,您无法真正执行此操作,但您可以采用更简单的方式

准备一个网关脚本来调用你的PHP函数并用get发送一个param 应该看起来像:

http://YOUR-FULL-URL/getgravatar?email=use-email@example.com

比用户输入电子邮件时,您可以通过这种方式获得

image.attr("src", "http://YOUR-FULL-URL/getgravatar?email=" + input.val() );

并且你可以避免在直接的AJAX调用中使用Ajax