Показать сообщение отдельно
Старый 10.05.2015, 21:21   #3 (Ссылка на пост)
ДмитрийТ
Задержался
 
Аватар для ДмитрийТ
Пол:
 
Активность Longevity
0/20 9/20
Today Сообщения
0/5 sssssss71
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея: 0
Вес репутации: 10 ДмитрийТ идет по правильному пути
Делаю ajax форму авторизации для opencart
Вот форма html

<form action="<?php echo $action; ?>" method="post" id="action-log">
<p>
<label for="email"><?php echo $entry_email; ?> </label>
<input type="text" name="email" value="" />
</p>
<p>
<label for="password"><?php echo $entry_password; ?></label>
<input type="password" name="password" value=""/>

</p>
<p class="remember">

<input value="<?php echo $button_login; ?>" class="signing" type="submit"/>

<!-- <input id="remember" name="remember_me" value="1" type="checkbox"/> <input type="hidden" name="redirect" value="">-->
<label for="remember">Запомнить меня</label>
</p>
<p class="forgot"> <a href="<?php echo $forgotten; ?>"><?php echo $text_forgotten; ?></a> </p>
<p class="register"> <a title="" href="<?php echo $register; ?>"><?php echo $text_register; ?></a> </p>
</form>

вот что то типа ajax

$(document).ready(function() {
$('#action-log').submit(function(){
// прячем текст ошибок
$.ajax({
type: "POST",
dataType: "json",
url: "http://localhost/opencart/index.php?route=account/login", //Relative or absolute path to response.php file
data:$('#action-log').serialize(),
success: function(json) {
$('.warning, .error').remove();
if (json['redirect']) {
if (json['success']) {
$('#action-log').before(json['success']).remove();
setTimeout(function() {
location = json['redirect']
}, 3000);
}
else {
location = json['redirect'];
}
}
else if (json['error']) {
if (json['error']['warning']) {
$('#action-log').before('<div class="warning" style="display: none;">' + json['error']['warning'] + '</div>');
$('.warning').fadeIn('slow');
}
if (json['error']['error_login']) {
$('#action-log input[name=\'email\']').after('<span class="error">' + json['error']['error_login'] + '</span>');
}
if (json['error']['error_approved']) {
$('#action-log input[name=\'password\']').after('<span class="error">' + json['error']['error_approved'] + '</span>');
}}
}
});
// останавливаем сабмит, чтоб не перезагружалась страница
return false;
});
});

А это фрагмент php

protected function validate() {
$json = array();
if (!$this->customer->login($this->request->post['email'], $this->request->post['password'])) {
$json['error'] = $this->language->get('error_login');
}

$customer_info = $this->model_account_customer->getCustomerByEmail($this->request->post['email']);

if ($customer_info && !$customer_info['approved']) {
$json['error'] = $this->language->get('error_approved');
}


$this->response->setOutput(json_encode($json));
}

Как то так. Поля формы при неправильном вводе должны выдавать ошибку.
ДмитрийТ вне форума  
Ответить с цитированием