Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 150
  • Last Modified:

Displaying user selection on the same page

Dear Experts,

I have a form with a drop down menu box populated from a query from the database with a add button. When the user selects the item from the drop down box and clicks add, I want to display the selected item on the same page (showing the user what he/she has selected), after which the user can make other selections using the same drop down menu box and add the selection which will be appended below what he/she has added on earlier.

How can I do this?
0
TriggerFish
Asked:
TriggerFish
  • 2
1 Solution
 
jyokumCommented:
This refreshes the page everytime but should work:

<cfparam name="form.valueList" default="">
<cfparam name="myList" default="">
<cfif isdefined("form.things")>
     <cfset myList = listappend(myList,form.valueList)>
     <cfset myList = listappend(myList,form.things)>
</cfif>

<form name="frmAdd" action="add.cfm" method="post">
     <select name="things">
          <option value="this">this</option>
          <option value="that">that</option>
          <option value="the other">the other</option>
     </select>
     <input type="submit" value="Add Item">
     <input type="hidden" name="valueList" value="<cfoutput>#myList#</cfoutput>">
</form>
<table border="1">
     <cfoutput>
     <cfloop from="1" to="#ListLen(myList)#" index="item">
     <tr>
          <td>#listgetat(myList,item)#</td>
     </tr>
     </cfloop>
     </cfoutput>
</table>


0
 
TriggerFishAuthor Commented:
Thanks, it work perfectly are you able to disect the code so as to give a short explaination on how it work? Like why <cfparam name="form.valueList" default="">
    <cfparam name="myList" default="">

why <cfset myList = listappend(myList,form.valueList)>
    <cfset myList = listappend(myList,form.things)>

and <input type="hidden"
     name="valueList"
     value="<cfoutput>#myList#</cfoutput>">

Thanks again.

0
 
jyokumCommented:
After looking at it again, the cfparam's are not necessary. They could be replaced with <cfset myList="">.

listappend just takes an existing list, in this case myList, and adds a new value to the end of the list.
example:
<cfset myList=""> <!--- you need this because listappend requires that the list your appending to already exists --->
<cfset myList = listappend(myList,"A")>
<!--- myList now = "A" --->
<cfset myList = listappend(myList,"B")>
<!--- myList now = "A,B" --->
<cfoutput>#myList#</cfoutput>

the hidden form field just stores our list so that when another item is added, we have the previous selections.

here's the logic:
if the form has been submitted, add all the values previously in the list (form.valueList) and the new value (form.thing) to a new list (myList). Then store the new list in a hidden field (valueList) for the next time the form is submitted.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now