在zend framework 2中使用jquery进行电子邮件验证
查看文件:在zend framework 2中使用jquery进行电子邮件验证,jquery,validation,email,zend-framework2,Jquery,Validation,Email,Zend Framework2,查看文件: email: { required: true, email: true, remote: { url: 'deforay/admin/login/emailcheck', type: 'POST', data: {
email: {
required: true,
email: true,
remote: {
url: 'deforay/admin/login/emailcheck',
type: 'POST',
data: {
mail: function(){ return $("#email").val(); }
}
}
}
messages:
{
email: {
required: "Please provide a email-id",
email: "Please provide a valid email-id",
remote: "Mail-id already exist"
}
}
控制器:
public function emailcheckAction() {
if ($this->getRequest()->isPost()) {
$param = $this->getRequest()->getPost();
$service = $this->getServiceLocator()->get('CompanyService');
$result = $service->getEmail($param['mail']);
}
if ($result) {
$value = false; //'Email already exists';
} else {
$value = true;
}
$email = $this->getResponse()->setContent(Json::encode(array('response' => $value)));
return $email;
}
}
数据库表:
public function getEmail($param) {
$dbadapter = $this->adapter;
$sql = new Sql($dbadapter);
$select = $sql->select();
$select->columns(array('email'));
$select->from('company');
$select->where(array('email' => $param));
$selectString = $sql->getSqlStringForSqlObject($select);
$results = $dbadapter->query($selectString, $dbadapter::QUERY_MODE_EXECUTE);
if (count($results) > 0) {
$results = $results->current()->getArrayCopy();
$response['status'] = 'exist';
$response['email'] = array('email' => $results['email']);
}
if ($response) {
return $response;
}
}
问题出在哪里,当我使用调试进行检查时,我在控制器中得到了响应,但没有得到正确的答案(“邮件id已存在”,如果我键入现有的邮件id,则不会显示)很难说,因为您没有提供公司服务的getEmail方法的功能,如果找不到电子邮件,它是否会返回null?正确答案是什么意思?总是正确的还是错误的,或者只是不一致。这也太棒了,你应该用它来代替我现在添加的细节