Добрый день! Пересаживаю свой сайт на MVC. Сейчас понадобилось добавить проверку занятости Email при регистрации. Раньше это было так в корневой папке сайта есть файл js/js_login_form_validate.js Код (Text): function check_email() { var email = $('#email').val(); var error = $('#email_error'); var rturn = false; if (email == "") { error.show(); } else { if (validateEmail(email)) { $.ajax({ type: 'POST', url: 'check_email.php', data: { email: email }, async: false, cache : false, success: function(result) { if (+result) { rturn = true; error.hide(); } else { error.show().html('The email address you entered does not belong to any account. You can login using any email associated with your account. Make sure that it is typed correctly.'); } } }); } else { error.show().html("Please enter an email address in the following format info@lookingschools.com"); } } return rturn; } Ajax запросом мы отправляем email на проверку в файл check_email.php. Он также находился в корневой папке сайта и выглядел следующим образом: Код (Text): include 'db.php'; if (isset($_POST['email'])) { $res = mysql_query("select * from users where email = '".mysql_real_escape_string($_POST['email'])."' and is_active = 1"); if (mysql_num_rows($res) > 0) { echo 1; } else { echo 0; } } В связи с этим у меня возник вопрос как реализовать эту проверку на MVC, если можно , то с реальными примерами. Спасибо.
А в чём проблема? Делаете в контроллере, отвечающем за эту форму, акцию check_email, в которой делаете проверку. На Kohana (я пишу на этом фреймворке) будет выглядеть примерно так: Код (PHP): class Controller_User extends Controller { public function action_checkEmail() { $user_count = ORM::factory("User")->where("email", "=", $_REQUEST["email"])->count_all(); $valid = (int) ($user_count > 0); die("$valid"); } } И соответственно ваш JavaScript будет выглядеть так: Код (Text): function check_email() { var email = $('#email').val(); var error = $('#email_error'); var rturn = false; if (email == "") { error.show(); } else { if (validateEmail(email)) { $.ajax({ type: 'POST', url: '/user/checkEmail', data: { email: email }, async: false, cache : false, success: function(result) { if (+result) { rturn = true; error.hide(); } else { error.show().html('The email address you entered does not belong to any account. You can login using any email associated with your account. Make sure that it is typed correctly.'); } } }); } else { error.show().html("Please enter an email address in the following format info@lookingschools.com"); } } return rturn; }
Скоро у меня от таких вопросов действительно телепатия появится. Хз. как назовешь туда и отправляй /controller/method
Шаблон пустой + заголовок (опционально) Больше ничем Ajax запрос от страницы не отличается. Это тот же текст.