Как установить флажок из результатов cfquery - PullRequest
0 голосов
/ 25 октября 2018

У меня есть случай, когда мне нужно установить флажок на основе результата cfquery.База данных вернет 1 or 0, что, как я думал, сделает ее довольно простой для обработки, но я не уверен, как представить эти данные в флажок HTML.

Вот что у меня пока есть:

<cfquery name="ContainsSic" datasource="#Application.PrimaryDataSource#">
    SELECT HasSiC
    FROM tblAssayResults
    WHERE CustomerID = 838
    AND LotNumber = 15
    AND SubLot = 1
</cfquery>          

    <cfset SicResults = ContainsSic.HasSiC>

<cfoutput>
    <tr>
     <td align="center">#Passed_CustomerName#</td>
     <td align="center">#Passed_LotNumber#</td>
     <td align="center">#Passed_SubLot#</td>
     <td align="center">#Passed_CarbonAvg#</td>
     <td align="center"><input type="button" onclick="" value="Amend" /></td>
     <td align="center"><input type="checkbox" value="#SicResults#"/></td>
     <td align="center"></td>
     <td align="center"><input type="button" onclick=""/></td>
    </tr>
</cfoutput>

В принципе, если я не объяснил правильно, если база данных возвращает 1, флажок должен показывать флажок как проверенный, конечно, и такна.Я должен упомянуть, что все находится в пределах cfloop, что, вероятно, будет позже отдельным вопросом.

В настоящее время я получаю только пустые флажки, хотя база данных возвращает 1.Нужно ли включать cfif и сделать возвращение 1 как true?

Спасибо

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Думаю, я выберу первый пост, который видел сегодня, и попытаюсь помочь кому-нибудь нуждающемуся ...

Не знаю много о CF, но я работал с JSTL, стандартным тегом JSPбиблиотека.В этом taglib есть тег foreach, который позволяет вам циклически перебирать любые перечисляемые выходные данные или переменные JSP.

  1. Быстрая проверка ... Вы пробовали установить атрибут checked в флажке?

  2. Более глубокая мысль ...

Мне интересно, можете ли вы применить что-то подобное здесь, используя cfloop?Потому что я думаю, что тег cfquery возвращает перечисляемую структуру данных, которую нужно было бы повторить, чтобы учесть все записи, возвращенные в результате запроса.

Вот мой псевдокод ...

<!-- run your query -->
<cfset SicResults = ContainsSic>    
<cfset checkedValue = false>

<cfloop from="0" to="SicResults.recordCount" index="i">
  //not sure on cf tags to complete following...
  if ContainsSic[i].HasSiC === 1
    checkedValue = true
  <cfoutput>
    <tr>
      <td align="center">#Passed_CustomerName#</td>
      <td align="center">#Passed_LotNumber#</td>
      <td align="center">#Passed_SubLot#</td>
      <td align="center">#Passed_CarbonAvg#</td>
      <td align="center"><input type="button" onclick="" value="Amend" /></td> 
      <td align="center"><input type="checkbox" checked="#checkedValue#"/></td>
      <td align="center"></td>
      <td align="center"><input type="button" onclick=""/></td>
    </tr>
  </cfoutput>
</cfloop>
0 голосов
/ 25 октября 2018

Существует проблема с решением madeyejm : он либо вернет checked="false" или checked="true" - но простое присутствие атрибута checked (независимо отего значение) приведет к установке флажка.

Я думаю, что следующее соответствует тому, что вам нужно.

<cfset SicResults = ContainsSic.HasSiC>
<cfif ContainsSic.HasSiC EQ 1 >
    <cfset CheckedResult = "checked=""checked""" >
<cfelse>
    <cfset CheckedResult = "" >
</cfif>

<cfoutput>
    <tr>
     <td align="center">#Passed_CustomerName#</td>
     <td align="center">#Passed_LotNumber#</td>
     <td align="center">#Passed_SubLot#</td>
     <td align="center">#Passed_CarbonAvg#</td>
     <td align="center"><input type="button" onclick="" value="Amend" /></td>
     <td align="center"><input type="checkbox" value="#SicResults#" #CheckedResult#/></td>
     <td align="center"></td>
     <td align="center"><input type="button" onclick=""/></td>
    </tr>
</cfoutput>
0 голосов
/ 25 октября 2018

Например:

<td align="center"><input type="checkbox" value="#SicResults#" #((SicResults) ? "checked='checked'" : "")# /></td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...