Форма блока - добавить текст справки для ввода формы

Я пытаюсь добавить "текст справки" к вопросам, добавленным блоком "Форма". Нечто подобное, но в передней части формы.

По какой-то причине это не сохранение значения или получение значения в форме редактирования. Даже когда я добавляю его вручную в строку, его нет в выводе веб-интерфейса.

Я сделал пользовательский блок формы / шаблон с дополнительными изменениями:

Дополнительный столбец таблицы 'help text' в db.xml. И обновил блок.

<table name="btFormQuestions">
...
  <field name="helptext" type="text">
  <default value=""/>
</field>
...
</table>

Дополнительное поле в форме редактирования (обычное и редактируемое):

<div class="form-group">
  <?php echo $form->label('helptext', t('Help Text'))?>
  <?php echo $form->text('helptext', array('maxlength' => '255'))?>
</div>

Выведите его в view.php

use \Application\Block\Form\MiniSurvey;
...
<?php  echo $question['helptext']; ?>

Добавлен дополнительный код в auto.js,

addQuestion:
postStr += '&helptext=' + encodeURIComponent($('#helptext' + mode).val());
...
reloadQuestion:
$('#helptextEdit').val(jsonObj.helptext);
...
resetQuestion:
$('#helptext').val('');

мини-survey.php,

        $dataValues = array(
            intval($values['qsID']),
            trim($values['question']),
            trim($values['helptext']),
            $values['inputType'],
            $values['options'],
            intval($values['position']),
            $width,
            $height,
            intval($values['required']),
            $values['defaultDate'],
            intval($values['msqID']),
        );
        $sql = 'UPDATE btFormQuestions SET questionSetId=?, question=?, helptext=?, inputType=?, options=?, position=?, width=?, height=?, required=?, defaultDate=? WHERE msqID=? AND bID=0';
    } else {
        if (!isset($values['position'])) {
            $values['position'] = 1000;
        }
        if (!intval($values['msqID'])) {
            $values['msqID'] = intval($this->db->fetchColumn("SELECT MAX(msqID) FROM btFormQuestions") + 1);
        }
        $dataValues = array(
            $values['msqID'],
            intval($values['qsID']),
            trim($values['question']),
            trim($values['helptext']),
            $values['inputType'],
            $values['options'],
            intval($values['position']),
            intval($values['width']),
            intval($values['height']),
            intval($values['required']),
            $values['defaultDate'],
        );
        $sql = 'INSERT INTO btFormQuestions (msqID,questionSetId,question,helptext,inputType,options,position,width,height,required,defaultDate) VALUES (?,?,?,?,?,?,?,?,?,?,?)';
        }
$result = $this->db->executeQuery($sql, $dataValues);

Очистил кеш и обновил блок.

Пост форума на Concrete5 с изменениями


Решено: Это работает на чистой установке C5.

Небольшие изменения:

Добавлены исходные файлы из формы concrete/blocks/ в папку приложения (и изменено пространство имен)

db.xml (длинный текст не нужен)

<field name="helptext" type="text" size="65535"></field>

auto.js (точка с запятой; отсутствует в оригинальном бетоне / блоке / форме /auto.js (и, следовательно, копии в приложении))

reloadQuestion: 
$('#editQuestionForm').css('display', 'block');

0 ответов

Другие вопросы по тегам