За последние 24 часа нас посетили 38982 программиста и 1284 робота. Сейчас ищут 1011 программистов ...

запутался с if

Тема в разделе "JavaScript и AJAX", создана пользователем Slavka, 19 окт 2013.

  1. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Суть - если приходит ответ json - вывести его на экран. если нет - выдать пользователю ответ что ниче не найдено
    Код (Text):
    1.  
    2.         $.post("data.php",soc )  // отправили форму серверу
    3.    .done (function( data ) {   // зырим ответ
    4.        if (data !=='' || data !==' ' || data!==undefined )  // если есть какойто текст - выдаем алерт
    5.             {
    6.                 alert ("'" + data +"'");
    7.            }
    8.          else  {
    9.                 alert ("ниче нету");
    10.                  }
    11.   }
    так вот в чем загвоздка - если данные есть все отрабатывается как надо
    а если я с сервера гоню
    что ответа нет никакого или пробел или [] - у меня все равно попадает какбудто данные есть. и даже не собирается писать нижний алерт.
    чего я пропускаю ?
     
  2. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    поменял немного условие
    if (data !=='' || data !==" " || data!=='none' )

    сервак выдает именно none - результат все тот же - срабатывает верхний алерт
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    ты вроде уже решал эту задачу? ))) я тебя еще спрашивал как ты на серверной стороне сигналишь неудачу
     
  4. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    там другое было =) а тут простой иф - и сейчас сервак сигналит слово none которое тоже нифига не хочет обрабатываться.
     
  5. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    крышу снесло напрочь .. сижу кукую
    сделал так
    if ( data !== 'none' )
    и заработало .. странно почему ему or не нравится
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. if($.trim(data) && 'none'!=data) {
    2.     //success
    3. } 
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    потому что там AND должно быть, а не OR

    Добавлено спустя 3 минуты 13 секунд:
    и еще правило: (!A and !B) равнозначно !(A or B), то есть по уму ты мог бы написать
    if (!(data === '' || data ===" " || data === 'none') )
     
  8. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Спасибо за подсказки - видимо я еще долго буду привыкать к яваскриптному ифу - в других языках вроде именно так и как я выше писал - работало.. ну да ладно.
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А зачем тогда javascript->jquery используете?)
    Там есть же все для таких способов, какая переменная и какого типа приходит.