Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 24 Май, 2012, 11:12:11

Страниц: [1]
Печать
Автор Тема: Вопрос работа с ajax через jquery  (Прочитано 308 раз)
0 Пользователей и 1 Гость смотрят эту тему.
onzone    ↓ 
09 Сентябрь, 2010, 02:20:44
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 72
Сила слова: 0

Здравствуйте, изучаю jquery возникла такая проблема
Javascript

 
$(function(){  
    $("#fr_sub").click(function(){
             var errorList = [];
 // Хэш с текстом ошибок (ключ - ID ошибки)
             var errorText = {
             1 : "Не заполнено поле 'Имя пользователя!",
             2 : "Поле описание должно содержать не менее 5 символов!",
             3 : "Этот пользователь уже существует в вашей адресной книге!"
                 } 
             var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n"
        if($("#login_fr").val() == "") {
           errorList.push(1);} 
           else {
            $.ajax({
                       type: 'POST',
                       data: 'login_fr='+$("#login_fr").val(),
                       url: 'usersreg/js/check_frname.php',
                       success: function(response) {                          
//==проблема вот в этом месте      
  if(response == "1")  {errorList.push(3);}
            //=======         
}
                       });
           }
        if($("#op_fr").val().length <= 5) {
            errorList.push(2);}    
             for (i = 0; i < errorList.length; i++) {
             errorMsg += errorText[errorList[i]] + "\n";
                }         
                    if (!errorList.length)
                        {return true;}
                    else
                        {alert(errorMsg);}
            });   
        });
 
 

      Мне необходимо, чтоб после проверки добавлялся 3 элемент в массив errorList, как ни пробывал не получаеться, возможно проблема в том,  что  функция не видит его. Подскажите, пожалуйсто, как добавить этот 3 эемент в массив ошибок?
Записан
Chiffa    ↓ 
09 Сентябрь, 2010, 02:58:28 , спустя 37 минут 44 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 21
Сообщений: 511
Сила слова: 4.11

всё функция видит:)
проблема скорее всего в самом респонсе. у вас проверка
Javascript
if(response == "1")
вообще срабатывает?
Спустя 3 минуты 37 секунд добавил
на всяк случай, между
PHP
die(1);
и
PHP
die("1");
есть разница
Записан

Иногда решительный шаг вперед - следствие ощутимого пинка под зад...
ALL code is ugly. Yours, mine, everyone's. Code Is Ugly. Just face it.
onzone    ↓ 
09 Сентябрь, 2010, 03:24:48 , спустя 26 минут 20 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 72
Сила слова: 0

Chiffa, Да проверка работает , сам код работает не заносит в массив , причина скорее всего в том что errorList выходит за область видимости переменных в данной функции, тоесть функция не понимает, что есть этот массив. Но это лично моё мнение , так как я в js не особо разбираюсь, но проверка срабатывает , я специально проверял через алерт.
Записан
Stasovsky    ↓ 
09 Сентябрь, 2010, 03:27:56 , спустя 3 минуты 8 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

а что консоль пишет? у тебя там в одном месте точки с запятой нет... и еще, ты хочешь, чтоб добавлялся третий элемент, а первые два добавляются?))
Записан
Chiffa    ↓ 
09 Сентябрь, 2010, 03:32:28 , спустя 4 минуты 32 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 21
Сообщений: 511
Сила слова: 4.11

проверяю ваш код у себя - всё отлично добавляется. так что errorList вполне себе видим из функции...
сразу после
Javascript
errorList.push(3);
выведите errorList.length
если выведет не undefind значит с видимостью массива всё в стопудовом порядке, и проблемма где-то дальше
Спустя 1 минуту 8 секунд добавил

а что консоль пишет?
да, действительно:)
Записан

Иногда решительный шаг вперед - следствие ощутимого пинка под зад...
ALL code is ugly. Yours, mine, everyone's. Code Is Ugly. Just face it.
onzone    ↓ 
09 Сентябрь, 2010, 07:07:21 , спустя 3 часа 34 минуты 53 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 72
Сила слова: 0

Chiffa, , первые да щас проверю на errorList.length блин.
 
Stasovsky, покажи плз где нет точки с запятой, может пропустил я где я сравню со своим кодом =)
Записан
onzone    ↓ 
09 Сентябрь, 2010, 07:17:04 , спустя 9 минут 43 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 72
Сила слова: 0

Chiffa, попробовал видимость норм, выводит что добавлен 1 элемент, щас попробую вот так :
Javascript

errorList.push(3);
alert(errorList.length)
 
да блин элемент заносит в массив. Эх, надо искать ошибку в коде ниже =((((
Записан
Chiffa    ↓ 
09 Сентябрь, 2010, 07:27:31 , спустя 10 минут 27 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 21
Сообщений: 511
Сила слова: 4.11

onzone, не волнуйсь, от пропущеной точки-с-запятой таких приколов не бывает
Записан

Иногда решительный шаг вперед - следствие ощутимого пинка под зад...
ALL code is ugly. Yours, mine, everyone's. Code Is Ugly. Just face it.
onzone    ↓ 
09 Сентябрь, 2010, 07:36:18 , спустя 8 минут 47 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 72
Сила слова: 0

Chiffa, тут в другом дело вообщем привожу пример как всегда =):
Javascript

$(function(){  
    $("#fr_sub").click(function(){
             var errorList = [];
 // Хэш с текстом ошибок (ключ - ID ошибки)
             var errorText = {
             1 : "Не заполнено поле 'Имя пользователя!",
             2 : "Поле описание должно содержать не менее 5 символов!",
             3 : "Этот пользователь уже существует в вашей адресной книге!"
                 } 
             var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n"
        if($("#login_fr").val() == "") {
           errorList.push(1);} 
           else {
            $.ajax({
                       type: 'POST',
                       data: 'login_fr='+$("#login_fr").val(),
                       url: 'usersreg/js/check_frname.php',
                       success: function(response) {                          
                        if(response == "1") {errorList.push(3); alert(errorList.length);} //===тут при выполнении мы видим что добавлен 1 элемент
                        }
                       });
                                                                       alert(errorList.length)//==идём дальше, видим ага,  тут уже 0 элементов                                                   
           }
        if($("#op_fr").val().length <= 5) {errorList.push(2);}       
             for (i = 0; i < errorList.length; i++) {
             errorMsg += errorText[errorList[i]] + "\n";
                }         
                    if (!errorList.length)
                        {return true;}
                    else
                        {alert(errorMsg);}
            });   
        });
 

\\============если сделать так то будет работать! (есть ошибки писал наскоро!)
 
$(function(){  
    $("#fr_sub").click(function(){
             var errorList = [];
 // Хэш с текстом ошибок (ключ - ID ошибки)
             var errorText = {
             1 : "Не заполнено поле 'Имя пользователя!",
             2 : "Поле описание должно содержать не менее 5 символов!",
             3 : "Этот пользователь уже существует в вашей адресной книге!"
                 } 
             var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n"
        if($("#login_fr").val() == "") {
           errorList.push(1);} 
           else {
            $.ajax({
                       type: 'POST',
                       data: 'login_fr='+$("#login_fr").val(),
                       url: 'usersreg/js/check_frname.php',
                       success: function(response) {                          
                        //===Все дейсвия выпоняются внутри функции , что доказывает , что эта функция локальная, тоесть как я понимаю надо вернуть значение errorList.push(3);
                                                                                          if(response == "1") {errorList.push(3);
                       
                        if($("#op_fr").val().length <= 5) {errorList.push(2);}       
             for (i = 0; i < errorList.length; i++) {
             errorMsg += errorText[errorList[i]] + "\n";
                }         
                    if (!errorList.length)
                        {return true;}
                    else
                        {alert(errorMsg);}}
                        }
                       });
           }
       
            });   
        });
 

 
Записан
CTAPbIu_MABP    ↓ 
10 Сентябрь, 2010, 12:21:58 , спустя 16 часов 45 минут 40 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

есть ошибки писал наскоро!
да тут весь форум скорой писанины поэтому никто и не читает...
Записан

java.lang.OutOfMemoryError
onzone    ↓ 
10 Сентябрь, 2010, 05:12:57 , спустя 4 часа 50 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 72
Сила слова: 0

CTAPbIu_MABP, ))))логично). Вчера целый день продолбался, но наконец всё поучилось=)
Записан
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Sinkler, artoodetoo