Solved

aspupload using multiple checkboxes with the same name

Posted on 2009-05-12
11
521 Views
Last Modified: 2012-05-06
Hello, I found part of the solution and i have all the field info response.writing but i don't know how to get the values to combine as a comma delimited string to enter into the database. Below is the test i set up. and here is what the page looks like:
title= 44444444
action= insert
sec= Symptoms
section= Symptoms
content_type= ABOUT
FCKeditor1=
Enter content body copy here


user_types= SELFCARE
user_types= CAREGIVER
user_types= PROVIDER
age_group= CHILD
age_group= TEEN
age_group= ADULT
age_group= SENIOR
co_morbid= Obesity
co_morbid= Cardiovascular Disease/Heart Disease
co_morbid= Hypertension/High Blood Pressure
co_morbid= Foot Disease
description=
Submit= Insert this record


i need to get user_types, age_group and co_morbid to enter into the database as a comma delimited string.
<!--#include file="variables_set.asp"-->
<!--#include file="connection.asp"-->
 
<%
	Set Upload = Server.CreateObject("Persits.Upload")
Dim cont_id,sec
 
	' we use memory uploads, so we must limit file size - THIS IS SET TO 50mb
	Upload.SetMaxSize 26214400, True
 
	' Save to memory. Path parameter is omitted
	Count = Upload.Save
 
	' Obtain file object
	Set File = Upload.Files("THEFILE")
 
		' Build ADO connection string
		'Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(".\aspupload.mdb")
cont_id=Upload.form("id")
sec=Upload.form("sec")
		' If you use SQL Server, the connecton string must look something like this:
		 Connect = "Provider=SQLOLEDB;Server=67.59.176.188;Database="&dbasename&";UID=velocity;PWD=********y"
 
		' Use ADO Recordset object
		Set rs = Server.CreateObject("adodb.recordset")
 
		' Optional: check whether this file already exists using MD5 hash
		'Hash = File.MD5Hash
		'rs.Open "SELECT * from DOCS WHERE Hash='" & Hash & "'", Connect, 2, 3
		'If Not rs.EOF Then
		'prod_id=Upload.Form("prod_id")
			'Response.redirect"doc_new.asp?stat=filefound&prodid="&prod_id&"&prod="&prodname&""
		'End If
		'rs.Close
		' Reopen recordset to insert file
rs.Open "CONTENT", Connect, 3, 3 
   
   rs.AddNew
rs("title") = Upload.Form("title")
rs("content_type") = Upload.Form("content_type")
rs("section") = Upload.Form("section")
 
For Each Item in Upload.Form
       Response.Write Item.Name & "= " & Item.Value & "<BR>"
    Next
Set Upload = Nothing
 
 
 
 
%>

Open in new window

0
Comment
Question by:remedy_rider
  • 6
  • 5
11 Comments
 
LVL 10

Expert Comment

by:MaxOvrdrv2
ID: 24366837
do you work for the government by any chance? this is going towards a CMS type application as well?

you don't have to answer of course, i'm simply curious... ;)

here's the solution.
For Each Item in Upload.Form
   if Item.Name="user_types" OR Item.Name="age_group" OR Item.Name="co_morbid" then
      RS("yourfieldname")=RS("youfieldname") & Item.Value & ","
   end if
Next
RS("yourfieldname")=left(RS("yourfieldname"),RS("yourfieldname").length-1)

Open in new window

0
 

Author Comment

by:remedy_rider
ID: 24367901
LOL... me... government. that's funny. Nope, just working on a diabetes site. I was able to get the values in using your code. I needed them to go into their own fields which i figured out,  but i'm stuck on stripping out the trailing comma. :(  any ideas? I attached the code snipplet i have working.
for example, this is what the user_types field looks like when i selected all check boxes.
SELFCARE,CAREGIVER,PROVIDER,

just need to get rid of  the comma at the end.

 I really appreciate the help!
rs.Open "CONTENT", Connect, 3, 3 
   
   rs.AddNew
   For Each Item in Upload.Form
   if Item.Name="user_types"  then
      RS("user_types")=RS("user_types") & Item.Value & ","
   end if
 
   if Item.Name="age_group" then
      RS("age_group")=RS("age_group") & Item.Value & ","
   end if
 
   if Item.Name="co_morbid" then
      RS("co_morbid")=RS("co_morbid") & Item.Value & ","
   end if
   
      if Item.Name="related_sections" then
    RS("related_sections") =RS("related_sections") & Item.Value & ","
   end if
Next
rs("title") = Upload.Form("title")
rs("content_type") = Upload.Form("content_type")
rs("section") = Upload.Form("section")
rs("sub_section") = Upload.Form("sub_section")
rs("body_content") = Upload.Form("FCKeditor1")
rs("created") = date()
rs("modified") = date() & " " & time()
   rs.Update
   
   rs.movelast
   new_id = rs("id")
   section= rs("section")
   con_type=rs("content_type")
    set rs = Nothing

Open in new window

0
 
LVL 10

Expert Comment

by:MaxOvrdrv2
ID: 24367951
ah HA! you missed the final line in my solution ;) here it is, inside your code:
  if Item.Name="related_sections" then
    RS("related_sections") =RS("related_sections") & Item.Value & ","
   end if
Next
RS("related_sections")=left(RS("related_sections"),RS("related_sections").length-1)
 
perform the same for each other DB field that you created in this way... ;)

Open in new window

0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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.

 

Author Comment

by:remedy_rider
ID: 24368030
bummer: Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'rs(...).length'

/d_CARE/cms/content-insert.asp, line 56
0
 

Author Comment

by:remedy_rider
ID: 24368060
I got it. :) RS("related_sections")=Left(RS("related_sections"), Len(RS("related_sections")) - 1)

You really helped me through that one, thanks again Max!
0
 
LVL 10

Expert Comment

by:MaxOvrdrv2
ID: 24368080
oh, crap... just a sec i'll look up the proper way to find out the length of a string...

ok here it is... i was in .Net... my bad...
RS("related_sections")=left(RS("related_sections"),len(RS("related_sections"))-1)
 
perform the same for each other DB field that you created in this way... 

Open in new window

0
 
LVL 10

Expert Comment

by:MaxOvrdrv2
ID: 24368087
yes there you go! hehe! sorry again... my mind was in .Net mindset =)
0
 

Author Comment

by:remedy_rider
ID: 24368613
I forgot to ask about the update script. i'm close but no cigar. here's what the sql is writing:

Update CONTENT Set title='TESTING NEWS NEW INSERT SCRIPT', user_types='SELFCARE, CAREGIVER, PROVIDERPROVIDER', age_group='CHILD,TEEN, ADULT, SENIORSENIOR', co_morbid='Foot Disease', related_sections='Behavior & Lifestyle Management, Complications, Prevention & Risk Reduction, Testing & MonitoringTypes of Diabetes', content_type='NEWS', section='', sub_section='', body_content='
Enter content body copy hereASDFASDFASDF

', modified='5/12/2009 3:46:33 PM' where id=335


you can see it's getting rid of the last comma, then adding the last value? and i added multiple items in co_morbid and it's only bringing 1 over. It's probably something so easy, just having a rough day and can't seem to move forward. (except for your help! it's the only thing getting me though this day)
	rs.Open "CONTENT", conn, 3, 3 
		For Each Item in Upload.Form
   if Item.Name="user_types"  then
      user_types=RS("user_types") & Item.Value & ","
   end if
 
   if Item.Name="age_group" then
      age_group=RS("age_group") & Item.Value & ","
   end if
 
   if Item.Name="co_morbid" then
      co_morbid=RS("co_morbid") & Item.Value & ","
   end if
   
    if Item.Name="related_sections" then
   related_sections =RS("related_sections") & Item.Value & ","
   end if
Next
 
	sql = "Update CONTENT Set title='" & replace(Upload.form("title"),"'", "`") & "'"
sql = sql & ", user_types='" & Left(user_types, Len(user_types) - 1)& "'"
sql = sql & ", age_group='" & Left(age_group, Len(age_group) - 1)& "'"
sql = sql & ", co_morbid='" & Left(co_morbid, Len(co_morbid) - 1)& "'"
sql = sql & ", related_sections='" & Left(related_sections, Len(related_sections) - 1)& "'"
	sql = sql & ", content_type='" & replace(Upload.form("content_type"),"'", "`") & "'"
	sql = sql & ", section='" & replace(Upload.form("section"),"'", "`") & "'"
	sql = sql & ", sub_section='" & replace(Upload.form("sub_section"),"'", "`") & "'"
	sql = sql & ", body_content='" & replace(Upload.form("FCKeditor1"),"'", "`") & "'"
	sql = sql & ", modified='" & date() & " " & time()& "'"
	sql = sql & " where id="& Upload.form("id")
	response.write sql
	Set rs = conn.Execute(sql)
	new_id=Upload.form("id")
   sec= Upload.form("section")
   con_type=Upload.form("content_type")
 
    set rs = Nothing

Open in new window

0
 

Author Comment

by:remedy_rider
ID: 24368971
got it... sorry to keep posting and figuring it out. LOL. I just couldn't let it go. :) thanks for looking into all this for me. it's been SUPER helpful.
0
 
LVL 10

Expert Comment

by:MaxOvrdrv2
ID: 24374135
ok... lets take a look at the code... ok ok... so if you copy the code below, what do you get in your final statement? i didn't change much, but i'd like to see what you get...
rs.Open "CONTENT", conn, 3, 3 
For Each Item in Upload.Form
	if Item.Name="user_types"  then
		user_types=RS("user_types") & Item.Value & ","
	end if
	if Item.Name="age_group" then
		age_group=RS("age_group") & Item.Value & ","
	end if
	if Item.Name="co_morbid" then
		co_morbid=RS("co_morbid") & Item.Value & ","
	end if
	if Item.Name="related_sections" then
		related_sections =RS("related_sections") & Item.Value & ","
	end if
Next
 
	sql = "Update CONTENT Set title='" & replace(Upload.form("title"),"'", "`") & "'"
	sql = sql & ", user_types='" & Left(user_types, Len(user_types) - 1) & "'"
	sql = sql & ", age_group='" & Left(age_group, Len(age_group) - 1) & "'"
	sql = sql & ", co_morbid='" & Left(co_morbid, Len(co_morbid) - 1) & "'"
	sql = sql & ", related_sections='" & Left(related_sections, Len(related_sections) - 1)& "'"
	sql = sql & ", content_type='" & replace(Upload.form("content_type"),"'", "`") & "'"
	sql = sql & ", section='" & replace(Upload.form("section"),"'", "`") & "'"
	sql = sql & ", sub_section='" & replace(Upload.form("sub_section"),"'", "`") & "'"
	sql = sql & ", body_content='" & replace(replace(Upload.form("FCKeditor1"),"'", "`"),VBCrlF,"<br>") & "'"
	sql = sql & ", modified='" & date() & " " & time()& "'"
	sql = sql & " where id="& Upload.form("id")
	response.write sql
	response.end

Open in new window

0
 
LVL 10

Accepted Solution

by:
MaxOvrdrv2 earned 500 total points
ID: 24374164
actually, use this loop instead please:
For Each Item in Upload.Form
	if Item.Name="user_types"  then
		user_types=user_types & Item.Value & ","
	end if
	if Item.Name="age_group" then
		age_group=age_group & Item.Value & ","
	end if
	if Item.Name="co_morbid" then
		co_morbid=co_morbid & Item.Value & ","
	end if
	if Item.Name="related_sections" then
		related_sections=related_sections & Item.Value & ","
	end if
Next

Open in new window

0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question