Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: jQuery.post()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Serhio
Отправлено: 10 Сентября, 2015 - 12:57:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




Доброго времени суток!)


Вопрос по jQuery.post(), callback не принимает bool(true) по средством return true; из php файла. Это возможно как-то обойти? Или использовать другой тип возвращаемых данных.

Спасибо.
 
 Top
andrewkard
Отправлено: 10 Сентября, 2015 - 13:15:35
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Serhio
Как вариант:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['name']) && $_POST['name'] == 'John'){
  4.     echo true;
  5.     exit;
  6. }
  7.  


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.     $.ajax({
  3.         method: "POST",
  4.         url: "",
  5.         data: { name: "John", location: "Boston" }
  6.     })
  7.         .done(function( msg ) {
  8.             console.log(new Boolean(msg));
  9.         });
  10.  
 
 Top
Serhio
Отправлено: 10 Сентября, 2015 - 13:23:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




andrewkard пишет:
Serhio
Как вариант:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['name']) && $_POST['name'] == 'John'){
  4.     echo true;
  5.     exit;
  6. }
  7.  


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.     $.ajax({
  3.         method: "POST",
  4.         url: "",
  5.         data: { name: "John", location: "Boston" }
  6.     })
  7.         .done(function( msg ) {
  8.             console.log(new Boolean(msg));
  9.         });
  10.  



Спасибо. С echo вместо return заработало. Я пользуюсь готовым решением $.post();
Я так понимаю вместо return true; придется писать echo true; break; ?

(Отредактировано автором: 10 Сентября, 2015 - 13:24:08)

 
 Top
andrewkard
Отправлено: 10 Сентября, 2015 - 13:31:15
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




В данном контексте return использовать не правильно. Можно еще так: exit(true);
 
 Top
Serhio
Отправлено: 10 Сентября, 2015 - 13:48:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




andrewkard пишет:
В данном контексте return использовать не правильно. Можно еще так: exit(true);


Да вот exit(true); то что надо. Спасибо! +1.

А почему не правильно здесь использовать return, могли бы мне объяснить?



p.s. exit(true); вернет 1, а exit(false); должен вернуть 0? (возвращает пустоту?)

(Отредактировано автором: 10 Сентября, 2015 - 14:09:35)

 
 Top
Flash_PR
Отправлено: 10 Сентября, 2015 - 13:55:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




Serhio пишет:
А почему не правильно здесь использовать return, могли бы мне объяснить?


Присоединяюсь к вопросу. Тоже давно интересовал этот вопрос. Сам пользуюсь echo...


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
andrewkard
Отправлено: 10 Сентября, 2015 - 14:11:48
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Цитата:

Если вызвано из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. return также завершает выполнение выражения eval() или всего файла скрипта.
Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается

и ничего не возвращается.
Как то так. Подробнее http://php.net/manual/ru/function.return.php
(Добавление)
Serhio
exit(false) вернет false. В JS это будет пустая строка. Проверить можно так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. console.log(typeof (msg));
  3.  

(Добавление)
andrewkard пишет:
и ничего не возвращается.

В данном случае в JS вернется пустая строка, причем не важно как Вы вызвали return. Так return, или return(true) или так return(false)

(Отредактировано автором: 10 Сентября, 2015 - 14:23:41)

 
 Top
Serhio
Отправлено: 10 Сентября, 2015 - 14:24:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 194
Дата рег-ции: Март 2012  


Помог: 1 раз(а)




andrewkard пишет:

Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается

и ничего не возвращается.


Так и есть! Теперь понятно Улыбка

andrewkard пишет:

В JS это будет пустая строка.


Ах вот оно что! Это особенность JS?

andrewkard пишет:

Проверить можно так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. console.log(typeof (msg));
  3.  


Спасибо!)

(Отредактировано автором: 10 Сентября, 2015 - 14:28:53)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB