[Решено] Ajax запрос к своему скрипту

Все вопросы/проблемы по установке и использовании.
Ответить
tehnos
Сообщения: 223
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

[Решено] Ajax запрос к своему скрипту

Сообщение tehnos »

Привет.
Взялся делать свой плагин для интеграции со сберовским ГигаЧат. Создание базы раскурил - формы/экшены плагина организовал. Внутри страницы плагина всё работает.
Теперь задача обращаться к экшенам плагина из основной программы: в форме записи нужной сущности вешаю JS с кнопкой и хочу ajax-ом дёргать php из моего плагина.
Вот на этом моменте я упёрся. У меня либо не возвращается ответ, либо возвращается html страницы плагина (в зависимости от строки url).
Вот код ajax запроса, который не работает:

Код: Выделить всё

$('#gigaСhat').click(function() {
    let content = $('#fields_672').val();
    if(content.length < 50) {
      alert('Мало текста для обработки');
      return false;
    }
    $.ajax({
      url: '/index.php?module=omsSL/gigaChat/index&action=txt_query&token=' + $('#form_session_token').val(),
      type: 'POST',
      data: {
        promptId: '1',
        promptContent: content
      },
      dataType: 'json',
      beforeSend: function() {
          $('#gigaСhat').prop('disabled', true).html("<img src='/images/oms_images/gigachat_logo_64.png' width='20px'>&ensp;Думаю над ответом...");
        },
      success: function(response) {
        if(response.success) {
            $('#fields_671').val(response.data);
          } else {
            alert(response.error);
          }
        },
      error: function(xhr, status, error) {
        alert(error);
      },
      complete: function() {
          $('#gigaСhat').prop('disabled', false).html("<img src='/images/oms_images/gigachat_logo_64.png' width='20px'>&ensp;Создать описание");
        }
    });
  });
В файле /actions/index.php кейс 'txt_query' имеется.

Как работают ajax запросы в Руководителе?
Последний раз редактировалось tehnos 19 апр 2025, 13:40, всего редактировалось 1 раз.
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Ajax запрос к своему скрипту

Сообщение support »

В JS файле так же можете использовать функцию url_for. Параметр token добавляется автоматически. Вот пример.

Код: Выделить всё

 $.ajax({
             url:url_for('items/favorites','action=favorites_remove&path='+$(this).attr('data_path'))
         }).done(function(){
             favorites_render_dropdown()
         })
tehnos
Сообщения: 223
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: Ajax запрос к своему скрипту

Сообщение tehnos »

Благодарю за помощь.

Основная моя проблема оказалась в том, что я обращался к файлу index моего плагина и вместе с необходимым мне json прилетал ещё и html главой страницы плагина.

Решение:
1. в папке views я создал отдельный пустой query.php
2. в папке actions тоже query.php с кейсами экшенов и с нужным мне кодом. Теперь при ajax обращении url_for('omsSL/gigaChat/query','action=txt_query') выполняется и возвращается то что надо.
drfoxg
Сообщения: 1
Зарегистрирован: 25 апр 2025, 10:28
Имя: Анатолий Борисов
Откуда: Россия, Москва

Re: Ajax запрос к своему скрипту

Сообщение drfoxg »

support писал(а): 19 апр 2025, 06:44 В JS файле так же можете использовать функцию url_for. Параметр token добавляется автоматически. Вот пример.

Код: Выделить всё

 $.ajax({
             url:url_for('items/favorites','action=favorites_remove&path='+$(this).attr('data_path'))
         }).done(function(){
             favorites_render_dropdown()
         })
А в Конструкторе отчетов как лучше получить значения path и id?
$(this).attr('data_path') возвращает undefined

Код: Выделить всё

https://<host>/index.php?module=report_page/view&token=<token>&action=load&id=26&path=65-1
Ответить