我正在尝试在用户在表单字段中写他的电子邮件时创建 gravatar 自动加载。现在,我有了 php 函数,它将生成带有所需参数的 gravatar url,它可以在整个网站上运行。
现在,当用户输入有效的电子邮件时,我应该调用 jQuery:
image.attr("src", "<?=$this->Gravatar(" + input.attr('value') + ");?>");
但这是否可以将此参数传递给 PHP 函数?
您将需要 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';
}
如果我理解得很好,您想执行以下操作:
如果没有对服务器的任何请求,您将无法真正执行此操作,但您可以采用更简单的方法
准备一个网关脚本来调用您的 PHP 函数并使用 get 向它发送一个参数,应该如下所示:
http://YOUR-FULL-URL/getgravatar?email=use-email@example.com
比当用户输入电子邮件时,您可以通过这种方式获得它
image.attr("src", "http://YOUR-FULL-URL/getgravatar?email=" + input.val() );
就像这样,你避免使用 Ajax 和直接的 AJAX 调用