var email = document.querySelector('#edit-investor-profiles-0-entity-field-email-0-value').value; if (email.length > 3) { // construct an HTTP request var xhr = new XMLHttpRequest(); var url = "/user/register/check-email" xhr.open("POST", url, true); xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); var data = JSON.stringify({"email": email}); // send the collected data as JSON xhr.send(JSON.stringify(data)); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var returnedData = xhr.responseText; var jsonData = JSON.parse(returnedData); if(jsonData['data']['result']) { alert("The email you've entered is already in the system, please login to view your advisor matches."); } } } }
and the CheckEmail.php controller
email;
$emailExists = $this->emailExists($email);
return new JsonResponse(['data' => $emailExists, 'method' => 'GET', 'status' => 200]);
}
/**
* @return array
*/
public function emailExists($email)
{
$ids = \Drupal::entityQuery('user')
->condition('mail', $email)
->execute();
$messenger = \Drupal::messenger();
if (!empty($ids)) {
$json_array['result'] = true;
}
else {
$json_array['result'] = false;
}
return $json_array;
}
}