I want to check customer email is already exist or not using ajax prototype. I tried lots of things but it is not working.
I write my code like this.
<script type="text/javascript">
//<![CDATA[
var dataForm = new VarienForm('form-validate', true);
Validation.add('validate-emaila', 'Email already exist', function(v) {
var url = '/customer/account/checkEmail/email?email=' + encodeURIComponent(v);
var ok = false;
new Ajax.Request(url, {
method: 'get',
asynchronous: false,
onSuccess: function(transport) {
alert(transport.responseText);
var obj = response = eval('(' + transport.responseText + ')');
validateTrueEmailMsg = obj.status_desc;
if (obj.ok === false) {
Validation.get('validate-email').error = validateTrueEmailMsg;
ok = false;
} else {
ok = true; /* return true or false */
}
},
onFailure: function(){ alert('something wrong') },
onComplete: function() {
if ($('advice-validate-email-email')) {
$('advice-validate-email-email').remove();
}
if ($('advice-validate-email-email_address')) {
$('advice-validate-email-email_address').remove();
}
if ($('advice-validate-email-billing:email')) {
$('advice-validate-email-billing:email').remove();
}
if ($('advice-validate-email-shipping:email')) {
$('advice-validate-email-shipping:email').remove();
}
if ($('advice-validate-email-_accountemail')) {
$('advice-validate-email-_accountemail').remove();
}
}
});
return ok;
});
//]]>
</script>
I called a function In accountcontroller
public function checkEmailAction()
{
$bool = 0;
$email = $this->getRequest()->getParam('email');
$customer = Mage::getModel('customer/customer');
$customer->loadByEmail($email);
if ($customer->getId()) {
$bool = 1;
}
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($bool));
}
I am getting wrong response from php function. it is returning full html like this. instead of 0 or 1.
<!DOCTYPE html>
<!--[if lt IE 7]><html class="lt-ie9 lt-ie8 lt-ie7" style="background:url(http://103.9.68.227/media/wysiwyg/customBg/customBg.jpg) no-repeat center 0 #fbfbfb;background-attachment:fixed;"><![endif]-->
<!--[if IE 7]><html class="lt-ie9 lt-ie8 style="background:url(http://103.9.68.227/media/wysiwyg/customBg/customBg.jpg) no-repeat center 0 #fbfbfb;background-attachment:fixed;"><![endif]-->
<!--[if IE 8]><html class="lt-ie9 style="background:url(http://103.9.68.227/media/wysiwyg/customBg/customBg.jpg) no-repeat center 0 #fbfbfb;background-attachment:fixed;"><![endif]-->
<!--[if IE 9]><html class="ie9 style="background:url(http://103.9.68.227/media/wysiwyg/customBg/customBg.jpg) no-repeat center 0 #fbfbfb;background-attachment:fixed;"><![endif]-->
<!--[if gt IE 9]><!--><html class="" style="background:url(http://103.9.68.227/media/wysiwyg/customBg/customBg.jpg) no-repeat center 0 #fbfbfb;background-attachment:fixed;"><!--<![endif]-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Customer Login | Lincraft</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<link rel="stylesheet" type="text/css" href="http://103.9.68.227/skin/frontend/lincraft/default/css/styles.css" media="all" />
<div class="page">
<style>
</style>
<div class="header-container">
<div class="header-outer">
<div class="header">
<div class="branding">
<a href="http://103.9.68.227/" title="Lincraft: where ideas come to life" class="logo"><strong>Lincraft: where ideas come to life</strong><img src="http://103.9.68.227/skin/frontend/lincraft/default/lemonade/img/logo_lincraft-where.png" alt="Lincraft: where ideas come to life" /></a>
</div>
<div class="header-right ">
<div class="header-right-info">
<div class="welcome-msg"></div>
<div class="account-links"><ul class="links">
<li class="first" ><a href="http://103.9.68.227/customer/account/login/" title="Login" >Login</a></li>
<li class=" last" ><a href="http://103.9.68.227/membership/create/" title="Register" >Register</a></li>
</ul>
</div>
</div>
<div class="header-right-cart">
<!--{CART_SIDEBAR_536bebca0e80b1d085b731a445d18480}-->
<!--
item 0 show on the front end
-->
<div class="top-cart">
<div class="block-title">
<a href="http://103.9.68.227/checkout/cart/" id="topCartTrigger" class="top-cart-number"><strong><span>0</span> items</strong></a>
</div>
<!--
two links that on the header
-->
<div class="block-title no-items">
<ul class="cart-links">
<li><a href="http://103.9.68.227/checkout/cart/">View Cart</a></li>
<li><a href="http://103.9.68.227/onestepcheckout/">Check Out</a></li>
</ul>
</div>
<div id="topCartContent" class="block-content" style="display:none">
<div class="inner-wrapper"> <p class="block-subtitle">
<span class="close-btn">Close</span>
In my cart </p>
<p class="cart-empty">
You have no items in your shopping cart. </p>
</div>
</div>
</div>
<!--/{CART_SIDEBAR_536bebca0e80b1d085b731a445d18480}--> </div>
</div>
</div>
<div id="lcNav" class="clearfix">
</body>
</html>
I have tried lots of thing but giving same response. Can any one tell me what is wrong in this?
Best Answer
I would try returning the json response like this:
If you set the $status to 504 you will return an error.