Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Fylla i x-rutor (checked) från array

Postades av 2004-03-14 15:50:21 - Anette Jonsson, i forum asp - allmänt, Tråden har 5 Kommentarer och lästs av 514 personer

Hej,

Jag har kört fast på det problem jag beskriver nedan och undrar om någon här har tid, lust att hjälpa mig? Jag skulle bli oerhört tacksam :-)

Jag vill generera resultat som i outputexemplen, (se längst ned).

Det vill säga om en vald post har något av LanguageID:na lagrade
i fältet Languages (en array) ska en kryssruta skrivas ut "i-x:ad"
annars en o-xad kryssruta.


Tabell 1 : tblLanguages

LangID counter
LangName txt(50)

Exempel Data:

LangID LangName
1 English
2 French
3 German
4 Spanish


Tabell 2: tblClients

ID counter
Name txt(50)
Languages txt(255) – the data is stored in an Array

Exempel Data

ID Name LangIDs
1 John Smith 2, 3
2 Jane Dough 1, 3, 4
3 Minnie Brown 1, 2, 3

OUTPUT, EXEMPEL
===============

För: John Smith (request.queryString(“ID”) = 1 )
[ ] English
[ x ] French
[ x ] German
[ ] Spanish

För: Jane Dough (request.queryString(“ID”) = 2 )
[ x ] English
[ ] French
[ x ] German
[ x ] Spanish

För: Minnie Brown (request.queryString(“ID”) = 3 )
[ x ] English
[ x ] French
[ x ] German
[ ] Spanish


Svara

Sv: Fylla i x-rutor (checked) från array

Postades av 2004-03-14 19:10:53 - Anette Jonsson

Här är min kod (som inte funkar - men den kanske ger en aning om vad jag försöker åstadkomma)

<code>
<%
Response.Buffer = true

strID = Request.QueryString("ID")

Dim sDBConn, objRS, objConn, x
sDBConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/database/test.mdb")

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open sDBConn

Set objRS = Server.CreateObject("ADODB.RecordSet")
Set objRS2 = Server.CreateObject("ADODB.RecordSet")

SQL = "SELECT * FROM tblLanguages ORDER BY LangID ASC"
SQL2 = "SELECT * FROM tblClients WHERE ID =" & strID & " ORDER BY ID ASC"

Set objRS = objConn.execute(SQL)
Set objRS2 = objConn.execute(SQL2)

Do While Not objRS.EOF

arrLanguages = Split(objRS2("Languages"), ", ", -1, 1)

sHTML = ""
xHTML = ""

For x = 0 to Ubound(arrLanguages, 1)
xlangID = arrLanguages(x)

If objRS("LangID") = CInt(xlangID) Then
sHTML = sHTML & ("<input type=""checkbox"" name=""selLang"" value=""" & objRS("LangID") & """ checked>&nbsp;" & objRS("LangName") & " (" & objRS("LangID") & ")<br>")
Else
xHTML = ("<input type=""checkbox"" name=""selLang"" value=""" & objRS("LangID") & """>&nbsp;" & objRS("LangName") & " (" & objRS("LangID") & ")<br>")
End If

Next
Response.Write sHTML
'Response.Write xHTML

objRS.MoveNext

Loop

objRs.Close
objRs2.Close

Set objRS = Nothing
Set objRs2 = Nothing

objConn.Close
Set objConn = Nothing
%>
</code>




Svara

Sv: Fylla i x-rutor (checked) från array

Postades av 2004-03-14 21:53:52 - Andreas Hillqvist

Du bör ha en tabl istället för att använda en textvärde.

Har gjort ett exempel för dig som gör det du ber om: Programarkivet:Hantera en "många till många" relation med checkboxar


Svara

Sv: Fylla i x-rutor (checked) från array

Postades av 2004-03-15 11:02:02 - Anette Jonsson

Hej Andreas,

Tack för din fina lösning, det ser ut som om det är den mest effektiva att använda - egentligen. Problemet är att jag har ett enda script som hanterar listingar, uppdateringar etc. (jag håller på och leker och testar och försöker lära mig saker som jag känner att jag inte behärskar särskilt bra - bl.a. att hantera loopar och arrayer och det är därför jag bl.a. valt att lagra värdena (LangID:na från Langtabellen) i ett textfält i Client-tabellen som en sträng :-)

I princip har jag fått jag scriptet (koden ovan) att fungera - men jag får dubletter (lika många som värden i arrayen) och jag vet inte vad jag gör för fel.

Jag har lagt ut mina filer på:
http://www.humangateway.com/test/test.asp?ID=1

(jag har tre klienter i testdatabasen så det är bara att ändra ID till 2 och 3).

Längst ner ligger också en länk till en zipfil med den utbrutna scriptdelen och databasen.

Där syns det att jag får dubletter på de poster som är x-ade (en dublett per språk som är x:at) - men inte på de övriga, och jag är inte människa till att reda ut var någonstans jag gjort det logiska felet i loopen (eller om felet ligger tidigare i koden)?

MVH / anejo


Svara

Sv: Fylla i x-rutor (checked) från array

Postades av 2004-03-15 14:01:32 - Andreas Hillqvist

Har städat din sida och skrivit så jag skulle gjort det:
<code>
<%@ Language=VBScript %><%
Option Explicit

'**
'* Function: SQLIn - Generic function for stripping invalid statments from a numberic
'**
Function SQLIn(Value)
Dim re
Set re = New RegExp
re.Global = True
re.Pattern = "[^,0-9]"
SQLIn = re.Replace(Value, vbNullString)
End Function

Sub WriteHeader(Title)
Response.Write "<HTML>" & vbCrLf & _
"<HEAD>" & vbCrLf & _
"<TITLE>" & Server.HTMLEncode(Title) & "</TITLE>" & vbCrLf & _
"</HEAD>" & vbCrLf & _
"<BODY>" & vbCrLf
End Sub

Sub WriteFooter()
Response.Write "<BR>" & vbCrLf & _
"<BR>" & vbCrLf & _
"Download sourcefiles and database: Test.zip" & vbCrLf & _
"</BODY>" & vbCrLf & _
"</HTML>" & vbCrLf
End Sub

Dim lngID
Dim strID
Dim strIn
Dim strSQL

Dim objRS, objConn

Response.Buffer = true

strID = CStr(Request.QueryString("ID"))

If IsNumeric(strID) Then
lngID = CLng(strID)

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("test.mdb")

strSQL = "SELECT * FROM tblClients WHERE ID = " & lngID
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn

If Not objRS.EOF Then
WriteHeader "Client: " & objRS("coachname")

Response.Write "<P><B>Client name: </B>" & objRS("coachname") & "</P>" & vbCrLf & _
"<P><B>Change spoken languages:</B><BR>" & vbCrLf

strIn = SQLIn(objRS("Languages"))
If Len(strIn) Then
strSQL = "SELECT tblLanguages.*, LangID IN (" & strIn & ") As LangChecked FROM tblLanguages ORDER BY LangID ASC"
Else
strSQL = "SELECT tblLanguages.*, False As LangChecked FROM tblLanguages ORDER BY LangID ASC"
End If

objRS.Close

objRS.Open strSQL, objConn

Do
If objRS("LangChecked") Then
Response.Write "<INPUT type=""checkbox"" name=""selLang"" value=""" & objRS("LangID") & """ checked>&nbsp;" & Server.HTMLEncode(objRS("LangName")) & " (" & objRS("LangID") & ")<BR>"
Else
Response.Write "<INPUT type=""checkbox"" name=""selLang"" value=""" & objRS("LangID") & """>&nbsp;" & Server.HTMLEncode(objRS("LangName")) & " (" & objRS("LangID") & ")<BR>"
End If

objRS.MoveNext
Loop Until objRS.EOF
Response.Write "</P>"

WriteFooter
Else
WriteHeader "No Record"
Response.Write "<H3>No Record found with Id: " & lngID & ".</H3>"
WriteFooter
End If

objRs.Close
Set objRS = Nothing

objConn.Close
Set objConn = Nothing
Else
WriteHeader "Missing parameter"
Response.Write "<H3>You must specify a value for query string value ""Id"".</H3>"
WriteFooter
End If
%>
</code>


Svara

Sv: Fylla i x-rutor (checked) från array

Postades av 2004-03-15 14:18:18 - Anette Jonsson

Tusen TACK Andreas - du är en riktig pärla - det fungerar perfekt nu och blir lätt att integrera i min övriga kod.

Häls. / anejo

PS!
Nu är jag skyldig dig 2 middagar :-) Tills jag får tillfälle att åka till Göteborg börjar jag med att lyfta luren och ringa in ett bidrag till Pelles bonusmedlemsfond. Det är det bästa sättet jag kommer på att tacka med just nu.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 790
27 960
271 761
5 795
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies