есть форма:
<div class="profile_menu_main">
<div id="text_error_form"></div>
<form method="post" action="index.php?route=action/login" class="form_data">
<div class="form-group col-md-4"><input type="text" id="login" class="form-control" name='name' placeholder="<?=$data['form_login_text']?>"/></div>
<div class="form-group col-md-4"><input type="password" id="pass" class="form-control" name='pass' placeholder="<?=$data['form_pass_text']?>"/></div>
<div class="form-group col-md-4"><input type="submit" id="login_form" name="login_form" class="btn btn-primary Go" value="<?=$data['btn_form_login']?>" /><a href="#open_RuBizCSS3Modal" class="btn btn-primary" data-toggle="modal" style="margin-left: 5px;" ><i class="fa fa-share"></i><?=$data['btn_register']?></a></div>
</form>
общий и универсаный ajax:
$(document).ready(function() {
$('.form_data').on('submit', function(e){
e.preventDefault();
var $that = $(this),
fData = $that.serialize();
$.ajax({
url: $that.attr('action'),
type: $that.attr('method'),
data: {form_data: fData},
dataType: 'json',
success: function(json){
if(json.Error) {
document.getElementById('text_error_form').innerHTML = json.Error;
} else if(json.Success != null) {
$('#text_error_form').remove();
$('.form_data').replaceWith(json.Success);
}
},
error:function(xhr, str){
alert('Возникла ошибка: ' + xhr.responseCode);
}
});
});
});
и php обработчик:
if (isset($_POST['form_data'])) {
if ($this->valid->secureData($_POST)) {
parse_str($_POST['form_data'], $form_data);
if ($form_data['name'] == "" or $form_data['pass'] == "") {
$data['message'] = $lang['message_error_auth'];
} else {
if (!$this->valid->validLogin($form_data['name'])) {
$data['message'] = $lang['message_error_login'];
} else {
$login = $form_data['name'];
$pass = md5($form_data['pass']);
$authUser = $this->addUser->AuthUser($login, $pass);
if($authUser == true and $authUser[0]['activ_status'] == "1") {
$_SESSION['user'] = $login;
$upd_online_status['online_status'] = time();
$this->addUser->UpdOnlineStatus($upd_online_status, $login);
$loginSuccess = sprintf($lang['message_error_success'], $_SESSION['user']);
} else {
if ($authUser == true and $authUser[0]['activ_status'] == "0") $data['message'] = $lang['message_activation'];
else $data['message'] = $lang['message_error_auth'];
}
}
}
}
$resArr = array('Error' => $data['message'], 'Success' => $loginSuccess);
echo json_encode($resArr);
}
когда идет отправка данных через ajax то все работает, сервер работает с данными и если возвращает ошибку (не верный пароль или такой существует) то в консоле этот ответ от сервера виден НО в html он не записывается не могу понять почему, а когда в ответе от сервера приходит меню авторизованого пользователя то оно успешно заменяет собой форму авторизации. почему в html не записывается ответ от сервера. а только в консоле??
Попробуйте так:
document.getElementById('text_error_form').html(json.Error);
В универсальном аяксе замените строку
document.getElementById('text_error_form').innerHTML = json.Error;
на $('#text_error_form').html(json.Error);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Окей, это не совсем дерево, а просто что-то вроде раскрывающегося спискаНемного застряла - не знаю, как сделать так, чтобы когда я нажимаю на конкретный...