success json undefined
Подскажите пожалуйста..
function loginValidate( inp, login )
{
var msg = inp+'='+login;
msgServer( msg ) ? showAnswer( 'Iseet User!' ) : showAnswer( 'ok!' );
}
showAnswer() - просто показывает ответ.msgServer() - отправляет запрос на сервер и получает ответ в виде true/false. Подскажите, почему в loginValidate возвращается undefined? success: function ( data ) alert( data );- выдает true; Пробовал: var resp = msgServer( msg ); alert( resp );- undefined. |
Если отвечать, исходя из кода, который вы показали, то однозначно можно утверждать только одно : что-то возвращает undefined. Выкладывайте все запросы, серверные скрипты и тд
|
ok.
function phoneVal( name, values )
{
values.length < 10 || values.length > 12 || isNaN( values ) ? //чахлая проверка
chenger( name, 'Некорректный телефон!' ) : //показывает ответ
var msg = msgServer( name+'='+values ) ; //запрос к серверу и почему-то в msg попадает undefined...
msg ? chenger( name, 'Уже существует!' ) : chenger( name, 'ok' ) ;
}
отправка на сервер:
function msgServer( msg )
{
//alert( msg );
$.ajax ({
type: 'post',
data: msg,
url: '/ajax/',
dataType: 'json',
success: function( data ) { return data; // тут true/false, проверено alert, работает! },
error: function( xhr, str ) { alert('Возникла ошибка: ' + xhr.responseCode); }
});
}
php нужен? |
Если не назначить фукции что она должна возвращать после как отработает она вернет undefined ... если хотите что то отдавать после ее работы отдавайте через return
|
success: function( data ){ return data; // тут true/false, проверено alert, работает! },
в самом ответе data содержится true или false. Я как бы return data. Или что то не так делаю? |
Цитата:
Из кода выше все ваши фукции не имеют return а значит нечего не возвращают верней возвращают ответ по умолчанию то есть undefined |
Цитата:
|
Зеркальная ситуации msgServer не чего не возвращает. То что вы написали return в success нечего не меняет.
function msgServer( msg )
{
//alert( msg );
var flag;
$.ajax ({
type: 'post',
data: msg,
url: '/ajax/',
dataType: 'json',
success: function( data ) { flag = data; // тут true/false, проверено alert, работает! },
error: function( xhr, str ) { alert('Возникла ошибка: ' + xhr.responseCode); }
});
return flag;
}
|
dd_smol,
Спасибо за наводку! :) Пытаюсь + в карму, пишет "вы должны добавить отзыв кому-то еще, прежде чем сможете добавить его dd_smol". Все верно, только есть еще заморочка. нужно выставить async: false. Из за асинхронности он возвращает ответ раньше чем получает его от сервера. |
выставил async: false отладчик ругается, мол не молодец, так ниразу делать не стоит. Есть еще какие нибудь варианты?
наковырял в гугле какую-то функцию типа callback, только не знаю как ее правильно прикрутить. |
Vincent Vega,
Не пытайтесь что-то вернуть, обработку ответа размещайте в success |
Цитата:
Спасибо всем! :) |
Vincent Vega,
Можно в success разместить ответ в какой-нибудь элемент и сгенерить на нем событие change, которое ловить снаружи |
Цитата:
Почему-то чем больше изучаю javascript, тем больше понимаю, что нифига не понимаю. Над наверно плыть к истокам и начать изучение ECMA 468, постепенно вникая в javascript, jQuery, ActionScript и т.д., иначе кина не будет!.. :( И почему никому не могу + в карму сунуть? Модер, исправьте ситуёвину плиз! |
Vincent Vega,
Цитата:
|
| Часовой пояс GMT +3, время: 10:40. |