Posted October 12, 20213 yr comment_173379 Есть кнопка, как на нее повесить событие или что та еще, чтобы при клике, всплывало модальное окно? При помощи инструментов ips, в которых уже есть возможность открывать модальные окна
October 12, 20213 yr Author comment_173384 Элементу по примеру присваиваю role="button" data-ipsdialog="" data-ipsdialog-title="Создать" animating="false" При клике ничего не происходит, ни открытия окна, ни какого либо запроса
October 12, 20213 yr comment_173386 <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>
October 12, 20213 yr Author comment_173399 data-ipsdialog-size='narrow' data-ipsdialog-width="70" Никак не выходит выставить свою ширину модального окна. В данном случаи возможно скажем задать ширину 200px?
October 12, 20213 yr comment_173401 Не проверял, но думаю, что можно в стили добавить что-то типа .ipsDialog.ipsDialog_my200 > div { max-width: 200px; } и в data-ipsdialog-size='my200'
October 12, 20213 yr Author comment_173406 Модальное окно сделал, подгружаю данные. Но что если пользователь не авторизован, как отдать такой же шаблон в ответ?
October 12, 20213 yr comment_173408 Ну вы же можете получить статус пользователя? Просто отправляете другой шаблон в ответ.
October 12, 20213 yr Author comment_173409 \IPS\Output::i()->error( 'no_module_permission', '2C138/S', 403, ''); Нашел
October 13, 20213 yr Author comment_173422 В модальном окне вывожу форму, в ней поля с данными. Каким образом возможно выполнить якс запрос и при этом передать данные формы? Второй вопрос: Для того чтобы определить переданы данные яксом, пост запросов. Выполняю проверку так $_SERVER['REQUEST_METHOD'] == 'POST' В ips предусмотрена какая нибудь функция для этого?
October 15, 20213 yr comment_173473 На такой случай нужно читать документацию: если подставить свойство remoteSubmit, то форма будет отправлена аяксом. В 13.10.2021 в 14:13, Zuldek сказал: В ips предусмотрена какая нибудь функция для этого? if ( \IPS\Request::i()->isAjax() ) { }
October 16, 20213 yr Author comment_173508 Как вывести сообщение после отправки формы, понятно. Но что если необходимо внести изменения в html документ. То есть выполнить определенный js код после отправки. Возможно это? Как в таком случаи выставить проверку на поля которые обязательны к заполнению? И как принять данные в php, от формы. Которые будут профильтрованны от возможных инекций?
October 16, 20213 yr comment_173516 5 часов назад, Zuldek сказал: То есть выполнить определенный js код после отправки. Возможно это? Перехватить submit формы, сформировать и отправить ajax запрос на сервер, получить ответ в json (например), найти средствами jquery нужный элемент, изменить его. 5 часов назад, Zuldek сказал: И как принять данные в php, от формы. Все данные (и POST и GET) живут уже профильтрованные в \IPS\Request->i()->...
October 16, 20213 yr Author comment_173517 С этим разобрался. Создал форму путем $form = new \IPS\Helpers\Form; // Add our form fields $form->add( ... ); $form->add( ... ); Вот только форма отправляет, не обновляя страницу. Но как в таком случаи, если пользователь отправляет пустое поле. Как его сделать обязательным?
October 16, 20213 yr comment_173520 Посмотреть в конструктор класса. Например для поля типа Text: public function __construct( $name, $defaultValue=NULL, $required=FALSE, $options=array(), $customValidationCode=NULL, $prefix=NULL, $suffix=NULL, $id=NULL ) {
October 17, 20213 yr Author comment_173531 13 часов назад, Desti сказал: отправить ajax запрос на сервер, получить ответ в json (например) Отправляю ajax запрос на сервер, как верно отдать js код? \IPS\Output::i()->sendOutput(json_decode("console.log('sdf')")) Не выводится сообщение в консоле
October 17, 20213 yr comment_173540 \IPS\Output::i()->json( $data ); Но сообщение в консоли вы так не увидите :), для этого надо писать свой JS, причем в режиме разработчика, а не правкой существующих файлов.
October 17, 20213 yr comment_173551 https://invisioncommunity.com/developers/docs/general/enabling-developer-mode-r23/
October 17, 20213 yr Author comment_173552 Как сделать ссылку, клик по которой не будет обновлять страницу, а отправит якс запрос? В модальном окне выводит console.log('ss'); В index.php прописал define( 'IN_DEV', TRUE );
October 17, 20213 yr comment_173553 https://invisioncommunity.com/4guides/themes-and-customizations/javascript-framework/
October 17, 20213 yr Author comment_173554 Ничего не помнимаю. 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
October 17, 20213 yr comment_173559 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.