webForumDet fria alternativet

checkbox och uppdatera

ASPur ASP

3 svar · 272 visningar · startad av roady

Medlem sedan jan. 2002473 inlägg
Frågan#1

Har lite krångel ifall någon har tid o lust att hjälpa mig.

Jag har ett formulär med en massa checkboxar som loopas från en tabell osv. Allt detta verkar funka. När jag skickar infon så får jag med alla värden som det skall (se fetstil i koden var jag stoppade).

Ifall värdet "on" står så kolla ifall den redan finns i databasen, gör den det så skit i det annars lägg till....
Ifall värdet "off" står så kolla också ifall den redan finns, gör den det så ta bort annars skit i det.

Det är bara det att sidan genereras och jag skickas tillbaka men inget händer, det läggs inte till eller tas bort. :(

Såhär kan det se ut ifall jag bara klicka i den mittesta kryssrutan.
först kommer namnet, jag har sedan själv lagt till streken emellan för att se lättare, sedan kommer ID-numret, är noll om den inte fanns förut. och on ifall jag kryssa i checkboxen innan annars blir det off.

Hej o Hå - 0 - off
Ännu en fin grupp - 0 - on
Sista gruppen - 0 - off

Och här kommer koden

<!--#include file="library/metatag.asp" -->
<!--#include file="library/onsite.asp" -->
<%
Dim newsID, strSchool, strWebbShow, strSchoolShow, strGroup, xBoxar, x, objConnect, objRS, objRSgroup, SQL, i
Set objConnect		= Server.CreateObject("ADODB.Connection")
Set objRS			= Server.CreateObject("ADODB.Recordset")
Set objRSgroup 		= Server.CreateObject("ADODB.Recordset")
	newsID			= Request.Form("frmID")
	strSchool		= Request.Form("frmSchool")
	strWebbShow		= Request.Form("frmWebbShow")
	strSchoolShow	= Request.Form("frmSchoolShow")
	strGroup		= Request.Form("frmGroup")
	
	xBoxar = split(strGroup,",") 

'// Recordset med gruppnamn
	objRSgroup.Fields.Append "groupName", adChar, 100
	objRSgroup.Fields.Append "groupID", adChar, 50
	objRSgroup.Fields.Append "groupShow", adChar, 10
	objRSgroup.Open

	

	For x = 0 To UBound(xBoxar)
		objRSgroup.AddNew
		objRSgroup("groupName") = Trim(xBoxar(x))
		objRSgroup.Update
	Next
	
	If Not objRSgroup.BOF Then objRSgroup.MoveFirst
	i = 1
	Dim strTemp
	
	For x = 0 To UBound(xBoxar)
		strTemp	= Request.Form("frmGroupShow"& i)
		If i => 2 Then 	objRSgroup.MoveNext

		If strTemp = "on" Then
			objRSgroup("groupShow") = "on"
		Else
			objRSgroup("groupShow") = "off"
		End If
		
		objRSgroup.Update
		i = i + 1
	Next

	If Not objRSgroup.BOF Then objRSgroup.MoveFirst
	i = 1
	
	For x = 0 To UBound(xBoxar)
	strTemp	= Request.Form("frmGroupID"& i)
		If i => 2 Then 	objRSgroup.MoveNext

		If strTemp <> 0 Then
			objRSgroup("groupID") = strTemp
		Else
			objRSgroup("groupID") = "0"
		End If
	
	objRSgroup.Update
	i = i + 1	
	Next

	
	
[b]	If Not objRSgroup.BOF Then objRSgroup.MoveFirst
	Do Until objRSgroup.EOF
		Response.Write(objRSgroup("groupName") & " - " & objRSgroup("groupID") & " - " & objRSgroup("groupShow") & "<br>")
	objRSgroup.MoveNext
	Loop
	Response.End()[/b]

'// Hämta infon från DB:n
	SQL		= "SELECT newsFront.newsFrontGroup FROM newsFront WHERE newsFront.newsID = "& newsID &";"
	objConnect.Open "DSN=webportal"
	objRS.Open SQL, objConnect
	
	'// Loopa igenom alla och se till vad som skall göras
	If Not objRSgroup.BOF Then objRSgroup.MoveFirst
	Do Until objRSgroup.EOF
		If Not objRS.BOF Then objRS.MoveFirst

			If objRSgroup("groupShow") = "off" Then
			'// låt va eller ta bort
				If Not objRS.EOF Then
					Do Until objRS.EOF
						If Trim(objRSgroup("groupName")) = Trim(objRS("newsFrontGroup")) Then
							objConnect.Execute("DELETE * FROM newsFront WHERE newsFront.newsID = "& newsID &";")
						End If
					objRS.MoveNext
					Loop
				End If
			ElseIf objRSgroup("groupShow") = "on" Then
			'// Kolla om den finns eller lägg till
				If Not objRS.EOF Then
					If Not Trim(objRSgroup("groupName")) = Trim(objRS("newsFrontGroup")) Then
						objConnect.Execute("INSERT INTO newsFront (newsFront, newsID, newsFrontGroup) VALUES ('"& strSchool &"', "& newsID &", '"& objRSgroup("groupName") &"');")
					End If
				End If
			End If
	objRSgroup.MoveNext
	Loop

	objRS.Close
	objRSgroup.Close
	objConnect.Close
Set objRS		= Nothing
Set objRSgroup	= Nothing
Set objConnect	= Nothing

	Response.Redirect("edit_news_frontpage.asp?ID="& newsID &"&School="& strSchool)	
	
%>
Medlem sedan dec. 200012 464 inlägg
#2

Det var mycket kod. Undvik att loopa igenom recordset, det går mycket fortare om du låter databasen hantera det.

<!--#include file="library/metatag.asp" -->
<!--#include file="library/onsite.asp" -->
<%
Dim newsID, strSchool, strWebbShow, strSchoolShow, strGroup, xBoxar, _
    x, objConnect,  SQL, rs, groupName
Set objConnect		= Server.CreateObject("ADODB.Connection")

newsID		= Request.Form("frmID")
strSchool	= Request.Form("frmSchool")
strWebbShow	= Request.Form("frmWebbShow")
strSchoolShow	= Request.Form("frmSchoolShow")
strGroup	= Request.Form("frmGroup")
	
xBoxar = split(strGroup,",") 

'// Recordset med gruppnamn
	

objConnect.Open "DSN=webportal"

For x = 0 To UBound(xBoxar)
	groupName = "'" & replace(Trim(xBoxar(x)),"'","''") & "'"
	if Request.Form("frmGroupShow"& x + 1) = "on" then
		SQL = "select 1 from newsFront " & _
		      "where newsFront.newsID = "& newsID & _
		      " and newsFrontGroup = " & GroupName
		set rs = objConnect.Execute(SQL)
		if rs.eof then
			SQL = "INSERT INTO newsFront (newsFront, newsID, newsFrontGroup) " &_
			      "VALUES ('"& strSchool &"', "& newsID &", '"& groupName & ")"
			objConnect.Execute SQL,,128
		end if
		rs.close
	else
		SQL = "Delete from newsFront " & _
                      "WHERE newsFront.newsID = "& newsID & _
                      " and newsFrontGroup = " & groupName
		objConnect.Execute SQL,,128
	end if
next
                
objConnect.Close
Set objConnect	= Nothing

Response.Redirect("edit_news_frontpage.asp?ID="& newsID &"&School="& strSchool)	
	
%>
Medlem sedan jan. 2002473 inlägg
#3

jag skulle kunna pussa på dig i timtal :D

Medlem sedan feb. 200112 078 inlägg
#4

roady skrev:

jag skulle kunna pussa på dig i timtal :D

Inget pussande i ASP-forumet! I Caféet isåfall!

;)

134 ms totalt · 3 externa anrop · v20260731065814-full.02a0f7de
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)