Данные формы отображения Mura на странице - PullRequest
0 голосов
/ 27 июня 2018

У меня есть некоторый пользовательский HTML-код, где мне нужно получить имя и изображение с подписью из формы, которую я создал в бэкэнде mura, как я могу это сделать, я искал везде в группах Google, но ничего связанного не нашел, я просто Нужно начать, что делать и как найти сохраненные данные, и для cfoutput я думаю, что мне нужно сделать итерации

<cfset it = $.getBean('content').loadBy(title='myform')>
    <cfdump var="#it#">
    <cfif it.hasNext()>
  <ul>
    <cfloop condition="it.hasNext()">
      <cfset item = it.next()>
      <li>
        #esapiEncode('html', item.get('name'))#
      </li>
    </cfloop>
  </ul>

Мне нужно получить форму и отобразить данные в формате ul> li, как указано выше, но это дает мне ошибку, поскольку hasnext () не определена, что в некоторой степени имеет смысл, но я не уверен, чего мне здесь не хватает

1 Ответ

0 голосов
/ 27 июня 2018

OK. Я могу подтвердить, что это работает, используя MURA CMS 7.1 и конструктор форм.

ContentID:

Важной частью является ссылка на форму по ее «ContentID», который вы можете найти в разделе «Построитель форм -> Форма -> Дополнительно».

Переменная Ссылки:

Также вам необходимо изменить ссылки на 'formContentId' и 'wddxImageFieldName', соответственно.

Настройка:

Чтобы проверить это, просто поместите его в соответствующий шаблон Темы и убедитесь, что вы сделали хотя бы одну отправку формы

На основании кода Стива Уингтона по адресу:

https://gist.githubusercontent.com/stevewithington/5963610/raw/4d8bca4675500075b0a5831db52ccc9b8bf0bf57/mura-form-results.cfm

<cfscript>
  rsData = QueryNew('');
  dcm = $.getBean('dataCollectionManager');
  formContentId = '856499BD-01E2-48C9-CD1A0430D859E81B';
  wddxImageFieldName = 'AVATAR_ATTACHMENT';
</cfscript>

<cfif !Len($.event('responseid'))>
  <!--- All Form Submission Results --->
  <cfscript>
      formBean = $.getBean('content').loadBy(contentID=formContentId);
      if ( !formBean.getIsNew() ) {
          currentFieldList = dcm.getCurrentFieldList(formBean.getContentID());
          data = {
              sortby = 'entered'
              ,sortdirection = 'desc'
              ,keywords = ''
              ,siteid = $.event('siteid')
              ,contentid = formBean.getContentID()
          };
          rsData = dcm.getData(data);
      }
  </cfscript>
  <cfif !rsData.recordcount>
    <h3>Sorry, either the form does not exist, or no records have been submitted yet.</h3>
  <cfelse>
    <table cellspacing="5" cellpadding="5" border="1">
      <!--- FieldNames --->
      <thead>
          <tr>
            <th>&nbsp;</th>
            <th>Date/Time Entered</th>
            <cfloop list="#currentFieldList#" index="fieldName">
              <th>#esapiEncode('html', fieldName)#</th>
            </cfloop>
          </tr>
      </thead>
      <!--- Actual Output --->
      <tbody>
        <cfloop query="rsData">
            <tr>
              <!--- Edit --->
              <td>
                  <a href="./?responseid=#responseid#">Edit</a>
              </td>
              <!--- The Date/Time Stamp --->
              <td>
                  #entered#
              </td>
              <!--- The Data --->
              <!--- Forms are stored as WDDX files ... so we need to unpack them --->
              <cfwddx action="wddx2cfml" input="#data#" output="record" />
              <cfloop list="#currentFieldList#" index="fieldName">
                <td>
                  <cfif StructKeyExists(record, fieldName)>
                    #record[fieldName]#
                    <cfif CompareNoCase(fieldName,wddxImageFieldName) EQ 0>
                      <img src="#$.getURLForImage(record[fieldName])#">
                    </cfif>
                  <cfelse>
                    &nbsp;
                  </cfif>
                </td>
              </cfloop>
            </tr>
        </cfloop>
      </tbody>
    </table>
  </cfif>
</cfif>
...