Перейти к содержанию

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


Рекомендуемые сообщения

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

<a id="myId" href="https://link/" data-ipsdialog="" data-ipsdialog-size="medium" data-ipsdialog-title="Title" class="ipsButton ipsButton_*type* ipsButton_medium" title="title">ButtonName</a>

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

Не проверял, но думаю, что можно в стили добавить что-то типа

.ipsDialog.ipsDialog_my200 > div {
        max-width: 200px;
}

и в data-ipsdialog-size='my200'

Ссылка на комментарий
Поделиться на другие сайты

Модальное окно сделал, подгружаю данные. Но что если пользователь не авторизован, как отдать такой же шаблон в ответ?

dsz.png

Ссылка на комментарий
Поделиться на другие сайты

Ну вы же можете получить статус пользователя? Просто отправляете другой шаблон в ответ.

Ссылка на комментарий
Поделиться на другие сайты

\IPS\Output::i()->error( 'no_module_permission', '2C138/S', 403, '');

Нашел

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

}

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

$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 )
	{

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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


 

Ссылка на комментарий
Поделиться на другие сайты

Как включить режим разработчика?

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

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

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

console.log('ss');

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

define( 'IN_DEV', TRUE );

 

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

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

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/

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...