Помогите подсказать с выводом результатов в HTML, через Sendit
Добрый день, наверняка некоторые люди пользовались Sendit. И у меня есть пару вопросов по документации, может кто-то сталкивался и может привести примеры.
Вот есть документация, где описано что компонент умеет выводить полученный HTML на страницу.
docs.modx.pro/components/sendit/sending#obrabotka-otveta-servera
Так же прочитал что надо добавить параметр «resultBlockSelector» но нету какого либо примера как его указать.
Так же там написано «ответ должен в параметре data устанавливать ключ html со строкой в формате HTML.»
Может кто то может поделиться примером или подсказать как это реализовать, так как в документации нету примера, и я не совсем понял как оно работает.
Вот например я хотел сделать при клике на radiobutton выводить разный html
Может ли кто то показать один небольшой пример как правильно работать с этими параметрами.
А если кто то сможет подсказать как сделать что бы каждый новый выводимый результат имел возможность так же запускать отдельный новый пресет, то получит +100 к карме ))
Вот есть документация, где описано что компонент умеет выводить полученный HTML на страницу.
docs.modx.pro/components/sendit/sending#obrabotka-otveta-servera
Так же прочитал что надо добавить параметр «resultBlockSelector» но нету какого либо примера как его указать.
Так же там написано «ответ должен в параметре data устанавливать ключ html со строкой в формате HTML.»
Вот например я хотел сделать при клике на radiobutton выводить разный html
<form>
<div class="item">
<input type="radio" name="radio" data-si-form data-si-preset="change" data-si-event="click" value="Купить">
</div>
<div class="item">
<input type="radio" name="radio" data-si-form data-si-preset="change" data-si-event="click" value="Продать">
</div>
<div class="resultSendit"></div>
</form>
Сам хук сделал такой'change' => [
'hooks' => '',
'snippet' => 'loadSnippet'
'resultBlockSelector' => 'resultSendit'
],
Сам снипет имеет такое содержание $html = '<b>Какой то результат</b>';
return $html;
Но не понимаю правильно ли я параметры задал. Может ли кто то показать один небольшой пример как правильно работать с этими параметрами.
А если кто то сможет подсказать как сделать что бы каждый новый выводимый результат имел возможность так же запускать отдельный новый пресет, то получит +100 к карме ))
Комментарии: 8
правильно ли я параметры задал.Неправильно. А теперь подробно.
По моей задумки, название параметра «resultBlockSelector» должно было навести любого мало-мальски опытного разработчика на мысль о том, что в качестве значения нужно указать селектор, по которому JS сможет в DOM отыскать нужный блок для вставки HTML. Поэтому очевидно, что «resultSendit» не является валидным селектором. В твоём случае нужно писать так
...
'resultBlockSelector' => '.resultSendit'
...
По поводу возвращаемых значений. В документации есть раздел Разработка с примером сниппета. Из примера видно, что для возврата значения используются методы success и error. Оба метода принимают два параметра: $msg — сообщение и $data — массив данных. Так вот в твоём случае $data должен быть таким$data = ['html' => '<b>Какой то результат</b>'];
return $SendIt->success($successMessage,$data);
@Артур Шевченко Спасибо вам за ответ.
Сделал как вы сказали, теперь вроде ошибок в консоли нет, но сам текст в ДИве который указал в «resultBlockSelector» не появится.
В консоли вроде всё нормально и ошибок нету, выдаёт такое
Сделал как вы сказали, теперь вроде ошибок в консоли нет, но сам текст в ДИве который указал в «resultBlockSelector» не появится.
В консоли вроде всё нормально и ошибок нету, выдаёт такое
{"success":true,"message":"","data":{"hooks":"","snippet":"loadSnippet","resultBlockSelector":".resultSendit","sendGoal":"0","counterId":"","formName":"change","validate":"","html":"<b>\u041a\u0430\u043a\u043e\u0439 \u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/b>"}}
Значит пришла пора научится искать ошибки.
Несколько раз перечитал в документации «Начало работы» и «Отправка данных».
Но так и не понял что я сделал не так.
Подскажите что я упустил.
Наверняка кто-то в будущем с этим тоже столкнётся и им этот ответ тоже поможет.
Но так и не понял что я сделал не так.
Подскажите что я упустил.
Наверняка кто-то в будущем с этим тоже столкнётся и им этот ответ тоже поможет.
Подскажите что я упустил.Я бы и рад, но не могу. Вывод из консоли браузера корректный, параметры пресета тоже, почему не выводит не знаю, надо искать ошибку.
судя по доке у вас не хватает вот этого
docs.modx.pro/components/sendit/snippets#primer-ispolzovaniya-7
docs.modx.pro/components/sendit/snippets#primer-ispolzovaniya-7
resultShowMethod — метод вывода результатов; insert — вставляет контент взамен имеющемуся, append — добавляет контент к существующему.
Я это тоже добавил, но безрезультатно.
'resultShowMethod' => 'append',
Не понимаю что не так сделал
Беру свои слова назад, поудалял кеш, всё почистил, и всё заработало.
Наконец таки
Наконец таки
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.