我正在尝试在用户在表单字段中编写电子邮件时创建gravatar自动加载。现在,我已经有了php功能,它将生成带有所需参数的gravatar url,它可以在整个网站上运行。
现在,当用户键入有效的电子邮件时,我应该调用jQuery:
image.attr("src", "<?=$this->Gravatar(" + input.attr('value') + ");?>");
但这可以将此参数传递给PHP函数吗?
答案 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函数并用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