user1926837
user1926837

Reputation:

Checkbox within ColdFusion code

I'm trying to display data from database and add a checkbox at the end of each row. I've tried html tags and CF tags but for the last few hours I'm getting errors.. Any help would be great as I'm totally new to ColdFusion. Heres the code :

<cfset a = "BGCOLOR =###IIF(myQuery.currentrow MOD 2, DE('E6E6E6'),DE('C0C0C0'))#" />

<cfscript>
    For (i=1;i LTE myQuery.recordCount; i=i+1)


     writeoutput ("<TR " & a & "><TD>" & i & "</TD>" &
      "<TD>" & myQuery.UserID[i] & "</TD>" &
      "<TD>" & myQuery.FName[i] & "</TD>" &
      "<TD>" & myQuery.SName[i] & "</TD>"&
      "<TD>" & myQuery.Phone[i] & "</TD>"&
      "<TD>" & myQuery.DateJoined[i] & " </TD>"&
      "<TD>" & myQuery.Address[i] & "</TD>"&
      "<TD>" & <cfinput type="Checkbox" name="post_home">  & " </TD></TR>");


    </cfscript>

Last line (line 55) causing error.. Thanks in advance

Invalid CFML construct found on line 55 at column 37.

ColdFusion was looking at the following text: checkbox

  The CFML compiler was processing:

  An expression beginning with writeoutput, on line 48, column 1.This message is usually   caused by a problem in the expressions structure.
  A script statement beginning with writeoutput on line 48, column 1.
  A script statement beginning with For on line 45, column 9.
  A cfscript tag beginning on line 44, column 2.
  A cfscript tag beginning on line 44, column 2.
  A cfscript tag beginning on line 44, column 2.

  The error occurred in C:/inetpub/wwwroot/sem2/aShowUsers.cfm: line 55
  53 :           "<TD>" & myQuery.DateJoined[i] & " </TD>"&
  54 :           "<TD>" & myQuery.Address[i] & "</TD>"&
  55 :        "<TD><input type="checkbox" name="post_home"></TD></TR>");
  56 : 
  57 : 
  Resources:
  Check the ColdFusion documentation to verify that you are using the correct syntax.
  Search the Knowledge Base to find a solution to your problem.
  Browser   Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko)      Chrome/26.0.1410.64 Safari/537.31
  Remote Address    ::1
  Referrer      http://localhost/Sem2/adminmainpage.cfm
  Date/Time     13-May-13 10:08 PM
  Stack Trace


 coldfusion.compiler.ParseException: Invalid CFML construct found on line 55 at column 37.
at coldfusion.compiler.cfml40.generateParseException(cfml40.java:13130)
at coldfusion.compiler.cfml40.jj_consume_token(cfml40.java:13001)
at coldfusion.compiler.cfml40.FunctionParameters(cfml40.java:6523)
at coldfusion.compiler.cfml40.ComplexReference(cfml40.java:6381)
at coldfusion.compiler.cfml40.VariableReference(cfml40.java:6300)
at coldfusion.compiler.cfml40.PrimaryExpression(cfml40.java:6105)
at coldfusion.compiler.cfml40.UnaryExpression(cfml40.java:5955)
at coldfusion.compiler.cfml40.ExponentialExpression(cfml40.java:5912)
at coldfusion.compiler.cfml40.MultiplyDivisionExpression(cfml40.java:5865)
at coldfusion.compiler.cfml40.IntegerDivisionExpression(cfml40.java:5846)
at coldfusion.compiler.cfml40.ModExpression(cfml40.java:5827)
at coldfusion.compiler.cfml40.AdditionExpression(cfml40.java:5780)
at coldfusion.compiler.cfml40.ConcatExpression(cfml40.java:5761)
at coldfusion.compiler.cfml40.ComparisonExpression(cfml40.java:5614)
at coldfusion.compiler.cfml40.NotExpression(cfml40.java:5564)
at coldfusion.compiler.cfml40.AndExpression(cfml40.java:5536)
at coldfusion.compiler.cfml40.OrExpression(cfml40.java:5517)
at coldfusion.compiler.cfml40.XorExpression(cfml40.java:5498)
at coldfusion.compiler.cfml40.EqvExpression(cfml40.java:5479)
at coldfusion.compiler.cfml40.ImpExpression(cfml40.java:5460)
at coldfusion.compiler.cfml40.HookExpression(cfml40.java:5415)
at coldfusion.compiler.cfml40.expr(cfml40.java:5399)
at coldfusion.compiler.cfml40.cfScriptExpression(cfml40.java:2576)
at coldfusion.compiler.cfml40.SimpleStatement(cfml40.java:643)
at coldfusion.compiler.cfml40.cfscriptStatement(cfml40.java:1595)
at coldfusion.compiler.cfml40.ComplexStatement(cfml40.java:1710)
at coldfusion.compiler.cfml40.cfscriptStatement(cfml40.java:1530)
at coldfusion.compiler.cfml40.cfscript(cfml40.java:1455)
at coldfusion.compiler.cfml40.cfml(cfml40.java:4568)
at coldfusion.compiler.cfml40.cfelse(cfml40.java:442)
at coldfusion.compiler.cfml40.cfif(cfml40.java:316)
at coldfusion.compiler.cfml40.cfml(cfml40.java:4554)
at coldfusion.compiler.cfml40.cfelse(cfml40.java:442)
at coldfusion.compiler.cfml40.cfif(cfml40.java:316)
at coldfusion.compiler.cfml40.cfml(cfml40.java:4554)
at coldfusion.compiler.cfml40.start(cfml40.java:4994)
at coldfusion.compiler.NeoTranslator.parsePage(NeoTranslator.java:694)
at coldfusion.compiler.NeoTranslator.parsePage(NeoTranslator.java:675)
at coldfusion.compiler.NeoTranslator.parseAndTransform(NeoTranslator.java:428)
at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:370)
at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:147)
at coldfusion.runtime.TemplateClassLoader$TemplateCache$1.fetch(TemplateClassLoader.java:436)
at coldfusion.util.LruCache.get(LruCache.java:180)
at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:362)
at coldfusion.util.AbstractCache.fetch(AbstractCache.java:58)
at coldfusion.util.SoftCache.get_statsOff(SoftCache.java:133)
at coldfusion.util.SoftCache.get(SoftCache.java:81)
at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:609)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:101)
at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:204)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:203)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Upvotes: 0

Views: 524

Answers (3)

Dan Bracuk
Dan Bracuk

Reputation: 20794

You could do it the easy way, without using cfscript.

<cfoutput query = "myQuery">
<tr>
    <td>#myQuery.userid#</td>
    ... other display fields
    <td><input type="checkbox" name="post_home" value="#something#"></td>
</tr>
</cfoutput>

Upvotes: 1

Chris Tierney
Chris Tierney

Reputation: 1549

Keep in mind that you don't have a defined in your example and the check boxes will not have a value to pass as it's not defined. Also, don't put hashes around the i var.

<cfscript>
        for ( i=1; i <= myQuery.recordCount; i++ ) {

             writeoutput ("<tr " & myQuery.currentRow MOD 2 ? '##E6E6E6' : '##C0C0C0' & "><td>" & i & "</td>" &
                "<td>" & myQuery.UserID[i] & "</td>" &
                "<td>" & myQuery.FName[i] & "</td>" &
                "<td>" & myQuery.SName[i] & "</td>" &
                "<td>" & myQuery.Phone[i] & "</td>" &
                "<td>" & myQuery.DateJoined[i] & "</td>" &
                "<td>" & myQuery.Address[i] & "</td>" &
                "<td><input type='checkbox' name='post_home'></td></tr>");

            }
</cfscript>

Upvotes: 0

Matt Busche
Matt Busche

Reputation: 14333

You're missing quotes around your <cfinput> tag. You need to use a single quote here to concatenate properly.

<cfscript>
for ( i=1; i <= myQuery.recordCount; i++ ) {

  writeoutput ("<tr " & a & "><td>" & i & "</td>" &
  "<td>" & myQuery.UserID[i] & "</td>" &
  "<td>" & myQuery.FName[i] & "</td>" &
  "<td>" & myQuery.SName[i] & "</td>" &
  "<td>" & myQuery.Phone[i] & "</td>" &
  "<td>" & myQuery.DateJoined[i] & "</td>" &
  "<td>" & myQuery.Address[i] & "</td>" &
  "<td>" & '<input type="checkbox" name="post_home">' & "</td></tr>");

}
</cfscript>

Alternatively you could put your last line all in single quotes.

'<td><input type="checkbox" name="post_home"></td></tr>');

Upvotes: 4

Related Questions