如果电子邮件已存在于db中,我正在尝试检查电子邮件字段模糊。我的代码现在是:
<script type="text/javascript">
$(document).ready(function () {
// Validation
$("#soutez").validate({
rules: {
email: {
required: true,
email: true,
remote: "check-email.php",
},
},
messages:{
email:'Email address exists.'
},
onkeyup: false,
onblur: true,
});
});
</script>
PHP代码是
$email= $_GET['email'];
echo $email;
$path = $_SERVER['DOCUMENT_ROOT'];
include_once $path . '/wp-config.php';
include_once $path . '/wp-load.php';
include_once $path . '/wp-includes/wp-db.php';
include_once $path . '/wp-includes/pluggable.php';
global $wpdb;
$email_exists = $wpdb->get_row('SELECT COUNT(*) as count from reg_form_new WHERE email = "'.$email.'"');
if ( $email_exists->count == 0 ) { echo 'true'; } else { echo 'false'; }
exit; }
php代码正确返回true / false,但由于某种原因它不能与jQuery脚本一起使用。谁能告诉我我做错了什么?感谢
答案 0 :(得分:4)
如果您希望允许它,则必须完全回显字符串'true'
,而不是其他任何内容。其他任何内容('false'
,null
,undefined
或任何字符串)都将被解释为无效,如果有字符串,则会显示该字符串。
因此,请仔细检查您的php脚本现在只打印'true'
或'false'
。您显示的脚本会打印电子邮件,然后是'true'
或'false'
。这将始终被解释为false
。
阅读remote method的文档:
响应被评估为JSON,并且必须为true才有效 元素,可以是任何false,undefined或null为无效 元素,使用默认消息;或者一个字符串,例如。 “那个名字是 已经采取,尝试peter123而不是“显示为错误信息。
使用Firebug或Chrome Inspector验证您的回复是否正确。
答案 1 :(得分:0)
我不是Jquery的专家,你可以根据需要调整工作功能:
$.ajax({
url: "check-email.php",
type:'GET',
/*you my specify dataType: 'json', for example ...*/
data: $("#soutez").serialize(), //email input id
success: function(res) {
switch(res) {
case ('true'):
alert("true");
break;
case ('false'):
alert('false');
break;
// other cases...
}
}
});