2 Replies Latest reply on Aug 5, 2013 7:46 PM by Flyguy1996

    cfloop problem after upgrading from CF8 to CF10


      I was recently forced due to company policy to upgrade from CF8 to CF10.  When I did so, a number of things naturally broke.


      Specifically, I have some cfloop code that is now throwing a "Complex object types cannot be converted to simple values" where it didn't before.  This is driving me mad.  Must be something simple I'm missing.


      The gist of it is that I have a multi-select listbox (sorted with some javascript I found online) passing a comma-delimited list of numbers as the "FORM.list" value to the loop. 


      Here is the code:


          <cfif isDefined("FORM.list")>
            <cfloop list="#FORM.list#" delimiters="," index="i">   
              <cfquery name="somename" datasource="#datasource#">      
                UPDATE STATEMENT (some query code)
                WHERE some_id = #i#     


      When one item is selected in the form list, the code works fine.  When I multi-select two or more items from the multi-select box, it throws:


      "Complex object types cannot be converted to simple values." 


      All that's in the passed form values are numbers: e.g. "123456,234532".


      Does anyone know what's going on so I can stop pulling my hair out?



        • 1. Re: cfloop problem after upgrading from CF8 to CF10
          Adam Cameron. Level 5

          If you dump the form scope, are those numbers presented as a list or an array?


          Do you have the thissameFormFieldsAsArray setting set to true in Application.cfc?


          Recommend you put a try/catch around the erroring code, and dump out all the contributing variables to determine which variables don't have the values you expect.


          Also: is your CF10 server fully patched to 10.0.11?




          • 2. Re: cfloop problem after upgrading from CF8 to CF10
            Flyguy1996 Level 1

            Hi Adam, thank you very much for your reply.


            Problem has been resolved.  I had only applied the mandatory update, and couldn't figure out why the auto updater wasn't seeing any patches so I thought maybe I was good.  At your suggestion, and a little more research, I realized I was not nearly up to date.  Found out I needed to add the proxy settings to the CF config and then all the updates appeared.  So once I patched the server properly, the cfloop problems went away.  Go figure.


            Many thanks for your prompt and helpful suggestions.  Glad this prompted me to get the auto-updater working as well.