我试图创建重力自动加载,而用户正在写他的电子邮件在一个表单字段。现在,我有了php函数,这将产生重力url与所需的参数,它的工作在整个网站。
现在,当用户输入有效的电子邮件时,我应该调用jQuery:image.attr("src", "<?=$this->Gravatar(" + input.attr('value') + ");?>");
但是可以将这个参数传递给PHP函数吗?
您将需要jQuery的ajax()
功能。在你的JavaScript中,你需要看到外部PHP脚本的值。
$('.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';
}
如果我理解得好,你想做以下事情:
- 用户输入一个有效的email
- 从PHP函数中获取Gravatar而不需要额外的请求
如果不向服务器发出任何请求,您实际上无法执行此操作,但是您可以采用更简单的方法
准备一个网关脚本来调用PHP函数并发送一个参数get应该看起来像这样:
http://YOUR-FULL-URL/getgravatar?email=use-email@example.com
当用户输入电子邮件时,你可以这样获取它
image.attr("src", "http://YOUR-FULL-URL/getgravatar?email=" + input.val() );
之类的避免使用Ajax直接调用