我正在尝试使用Bassistance jQuery插件实现电子邮件验证,并检查电子邮件地址是否存在。
远程脚本正确地返回true
或false
,但未显示任何错误消息。其他验证(必需,电子邮件)工作正常。
任何想法都是我在这里缺少的?
jQuery代码:
jQuery().ready(function() {
jQuery("#post").validate({
rules: {
lid_email: {
required: true,
email: true,
remote: {
type: 'POST',
url:"email-check.php"
}
}
},
messages: {
lid_email: {
required: 'Gelieve een geldig e-mailadres in te vullen.<br>',
email: 'Gelieve een geldig e-mailadres in te vullen.<br>',
remote: 'Dit adres bestaat reeds. Gelieve een ander adres te kiezen.'
}
}
})
jQuery('#lid_email').blur(function() {
jQuery("#post").validate().element( "#lid_email" );
});
});
远程脚本:
<?php
header('Content-type: application/json');
require('../../../wp-blog-header.php');
$request = trim(strtolower($_POST['lid_email']));
if ( email_exists($request) == TRUE ) {
echo json_encode(FALSE);
} else {
echo json_encode(TRUE);
}
?>
答案 0 :(得分:2)
您是否尝试过:
echo (email_exists($request) === true )?'true':'false'
而不是:
if ( email_exists($request) == TRUE ) {
echo json_encode(FALSE);
} else {
echo json_encode(TRUE);
}
我有类似的问题,我以这种方式解决了。另外,我向你评论说,通过这种方式我不需要放一个json标题。
答案 1 :(得分:0)
我找到了解决方案:
我在Wordpress网站上使用该脚本,并包含wp-blog-header.php,以便能够访问Wordpress功能。
显然,行require('../../../wp-blog-header.php
打破了json功能
如果我删除此行,则会正确发送布尔值,并显示错误消息。
我所要做的就是编写自己的user_exists-function,然后问题就解决了。