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.

Свое модальное окно

Featured Replies

Posted

Есть кнопка, как на нее повесить событие или что та еще, чтобы при клике, всплывало модальное окно?

При помощи инструментов ips, в которых уже есть возможность открывать модальные окна

  • Author

Элементу по примеру присваиваю

role="button" data-ipsdialog="" data-ipsdialog-title="Создать" animating="false"

При клике ничего не происходит, ни открытия окна, ни какого либо запроса

  • Author
data-ipsdialog-size='narrow'  data-ipsdialog-width="70"

Никак не выходит выставить свою ширину модального окна. В данном случаи возможно скажем задать ширину 200px?

  • Author

В модальном окне вывожу форму, в ней поля с данными. Каким образом возможно выполнить якс запрос и при этом передать данные формы?

Второй вопрос:

Для того чтобы определить переданы данные яксом, пост запросов. Выполняю проверку так

$_SERVER['REQUEST_METHOD'] == 'POST'

В ips предусмотрена какая нибудь функция для этого?

На такой случай нужно читать документацию: если подставить свойство remoteSubmit, то форма будет отправлена аяксом.

В 13.10.2021 в 14:13, Zuldek сказал:

В ips предусмотрена какая нибудь функция для этого?

if ( \IPS\Request::i()->isAjax() )
{

}

 

  • Author

Как вывести сообщение после отправки формы, понятно. Но что если необходимо внести изменения в html документ. То есть выполнить определенный js код после отправки. Возможно это?

Как в таком случаи выставить проверку на поля которые обязательны к заполнению? И как принять данные в php, от формы. Которые будут профильтрованны от возможных инекций?

5 часов назад, Zuldek сказал:

То есть выполнить определенный js код после отправки. Возможно это?

Перехватить submit формы, сформировать и отправить ajax запрос на сервер, получить ответ в json (например), найти средствами jquery нужный элемент, изменить его. 

5 часов назад, Zuldek сказал:

И как принять данные в php, от формы.

Все данные (и POST и GET) живут уже профильтрованные в \IPS\Request->i()->... 

  • Author

С этим разобрался. Создал форму путем

$form = new \IPS\Helpers\Form;

// Add our form fields
$form->add( ... );
$form->add( ... );

Вот только форма отправляет, не обновляя страницу. Но как в таком случаи, если пользователь отправляет пустое поле. Как его сделать обязательным?

Посмотреть в конструктор класса. Например для поля типа Text:

public function __construct( $name, $defaultValue=NULL, $required=FALSE, $options=array(), $customValidationCode=NULL, $prefix=NULL, $suffix=NULL, $id=NULL )
	{

 

  • Author
13 часов назад, Desti сказал:

отправить ajax запрос на сервер, получить ответ в json (например)

Отправляю ajax запрос на сервер, как верно отдать js код?

\IPS\Output::i()->sendOutput(json_decode("console.log('sdf')"))

Не выводится сообщение в консоле

\IPS\Output::i()->json( $data );

Но сообщение в консоли вы так не увидите :), для этого надо писать свой JS, причем в режиме разработчика, а не правкой существующих файлов.


 

  • Author

Как сделать ссылку, клик по которой не будет обновлять страницу, а отправит якс запрос?

В модальном окне выводит

console.log('ss');

В index.php прописал

define( 'IN_DEV', TRUE );

 

  • Author

Ничего не помнимаю.

1 - необходимо создать js файлы

2 - когда отправляем якс запрос, отдавать что та вроде

\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js( 'front_profile.js', 'core' ) );

И передавать данные в js?

Где данный js расположен

  • /js/front/controllers/profile/ips.profile.body.js
31 минуту назад, Zuldek сказал:

Ничего не помнимаю.

Естественно. Вы сейчас пытаетесь освоить объем знаний, к которому люди идут несколько лет и получают в итоге зряплату 150-200к. 

2. Этой командой в загрузку подключается созданный вами файл js

Данные в JS передаются только в виде параметров ajax запроса или в аттрибутах тега, который вызвал событие.

35 минут назад, Zuldek сказал:

Где данный js расположен

https://invisioncommunity.com/4guides/themes-and-customizations/javascript-framework/introduction-to-the-framework/file-structure-r35/

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.