Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Не срабатывает return и var_dump()

Featured Replies

Posted

Всем привет, создаю плагин, в хуке кода создал функцию для обработки ajax запроса (буду из бд выдавать список языков для выпадающего списка), суть проблемы: return не работает, var_dump тоже. Если обращаюсь аяксом к контроллеру, в котором моя функция

function MyAction () { return 'answer!'; }

то в ответ прилетает html код части страницы, т.е. с head, body но без answer.

Если в контроллер добавлю 

\IPS\Db::i()->output = 'Answer!';

То при переходе по url адресу, выдает строку 'Answer!' но не на пустой странице, а на странице с шаблоном форума, в ответ на аякс запрос, все так же прилетает кусок страницы с исходным кодом. 

Подскажите пожалуйста, как в IPS 4 работет return в контроллерах, как мне отвечать на аякс запрос и что я делаю не так?

Я думаю стоит немного почитать как работает return , она вернет строку, но не отобразит её. Класс \ips\bd отвечает за sql 

 

Попробуй вернуть так

$var = [

	'1' => 'q',
	
	'2' => 'z',
	
];
	
\IPS\Output::i()->json( $var );

 

 

  • Author
3 часа назад, greykoo сказал:

Я думаю стоит немного почитать как работает return , она вернет строку, но не отобразит её. Класс \ips\bd отвечает за sql 

 

Попробуй вернуть так


$var = [

	'1' => 'q',
	
	'2' => 'z',
	
];
	
\IPS\Output::i()->json( $var );

 

 

Спасибо, работает, но такой вопрос: return в IPS не воспринимается? Я в доках этот момент не нахожу, может есть линк или в конце концов литература по ips как бы это не звучало... 

7 часов назад, Clouds сказал:

Спасибо, работает, но такой вопрос: return в IPS не воспринимается? Я в доках этот момент не нахожу, может есть линк или в конце концов литература по ips как бы это не звучало... 

Это общая документация PHP. Задача return вернуть, а не отобразить. Возможно ты перепутал с оператором echo 

  • Author
1 час назад, greykoo сказал:

Это общая документация PHP. Задача return вернуть, а не отобразить. Возможно ты перепутал с оператором echo 

Так в том то и дело, если я делаю Ajax запрос то return из контроллера должен же вернуть мне либо переменную, либо массив, либо объект... кстати echo тоже не срабатывает

28 минут назад, Clouds сказал:

Так в том то и дело, если я делаю Ajax запрос то return из контроллера должен же вернуть мне либо переменную, либо массив, либо объект... кстати echo тоже не срабатывает

Тогда в таком случае тебе нужно возвращать строку или массив данных через \IPS\Output::i()->json и потом с ними работать 

  • Author
3 минуты назад, greykoo сказал:

Тогда в таком случае тебе нужно возвращать строку или массив данных через \IPS\Output::i()->json и потом с ними работать 

Понял... есть где-то классам документация или хотяб список, потому что опять же либо я баран и не вижу в доках, либо в доках этого нет?

2 часа назад, Clouds сказал:

Понял... есть где-то классам документация или хотяб список, потому что опять же либо я баран и не вижу в доках, либо в доках этого нет?

Весь функционал лежит тут system почти всякая функция описывается, да и по классу интуитивно понятно что она означает 

Вся документация тут https://invisioncommunity.com/developers/docs/general/enabling-developer-mode-r23/

  • Author
14 минут назад, greykoo сказал:

Весь функционал лежит тут system почти всякая функция описывается, да и по классу интуитивно понятно что она означает 

Вся документация тут https://invisioncommunity.com/developers/docs/general/enabling-developer-mode-r23/

Понял, спасибо!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.