Hej! Hej! Hej! Jag gjorde så här på ett projekt, inte den bästa lösningen, men den fungerar. Tack för förslagen! Jag måste nästan fråga vilket språk du kodar i, det ser ut som om du försöker göra jämförelsen med javascript, C# eller något annat språk inte asp/vbScript. Asp/jscript är det jag försöker mig på... :) JAAAA! Nu fungerar det! Men jag har ingen aning om vad skillnaden är från det jag skrev förut... :/Checka för utvalda checkboxar?!
Jag visar checkboxar och ämne för alla tillgängliga webbsidor (webpage_id i tabellen webpages). Detta fungerar bra och jag får en fin radda med mina checkboxar.
Problemet uppstår när jag försöker bocka för de checkboxar en viss användare har tillgång till. Vad jag förstår är det min IF-sats som inte fungerar. Jag får felmeddelandet: "Microsoft JScript runtime error '800a138f' Object expected". Kan jag verkligen inte jämföra topics2("webpage_id") med choosen_pages("webpage_id")?!? Jag kan ju skriva ut värdena och då se att de är lika... Hoppas att någon kan hjälpa mig!
<%
var i = 1;
topics2 = dbo.Execute("SELECT webpage_id, topic from webpages where owner = '"+Session("user")+"' AND child = 0")
while(!topics2.EOF)
{
choosen_pages = dbo.Execute("SELECT webpage_id FROM accounts WHERE owner = '"+Session("user")+"' AND username = '"+name+"'")
Response.Write("<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><input type=\"checkbox\" name=\"checkbox"+i+"\" value=\""+topics2("webpage_id")+"\"")
while(!choosen_pages.EOF)
{
If (topics2("webpage_id") == choosen_pages("webpage_id") )
{
Response.Write("checked")
}
choosen_pages.MoveNext();
}
Response.Write("><font color=\"#5F7F9E\"> "+topics2("topic")+"</font></font><br>")
i++
topics2.MoveNext();
}
%>Sv: Checka för utvalda checkboxar?!
Titta på vilken rad som du får felmeddelandet. Det kan vara så att loopningen av posterna klickar och då får man det felmeddelandet.
Du borde ju inte ha exakt samma antal poster i båda recordseten.
Jag tror att vi hade samma fel på ett projekt och då fick man kolla om recordsetet var EOF eller inte, då gick det att loopa igenom båda recordseten.
//Anna-KarinSv: Checka för utvalda checkboxar?!
Jag får felmeddelandet på raden med If-satsen.
Det stämmer bra att jag har olika antal poster i recordseten.
Nu förstår jag inte riktigt hur du menar. Jag gör ju redan en koll på EOF? Jag får också fel första varvet loopen körs.Sv: Checka för utvalda checkboxar?!
Kör loopen med alla checkboxar, sen inne i loopen så hämtar du den andracheckoboxen från databasen
Kollar om det recordsetet är EOF, är den det så fanns inte den checkoboxen, om det inte är tomt så ska checkoboxen vara vald.
Eventuellt att man hämtar från båda tabellerna och sen med en yttre for loop loopar igenom Recordset1,
sen inne i for loopen så loopar man ut nästa recordset tills man hittar samma värde.
Vet inte om det är en bra lösning prestandamässigt dock.
//Anna-KarinSv: Checka för utvalda checkboxar?!
Jag testar det översta du skrev, men mitt recordset kommer inte överens med if-satsen! Inte heller den här if-satsen fungerar. Jag får återigen veta att "Object expected" vid if-satsen. Och nu gör jag ju inte ens någon jämförelse!
Här är den förenklade koden som inte heller fungerar:
<%
var i = 1;
topics2 = dbo.Execute("SELECT webpage_id, topic from webpages where owner = '"+Session("user")+"' AND child = 0")
choosen_pages = dbo.Execute("SELECT * FROM accounts WHERE owner = '"+Session("user")+"' AND username = '"+name+"' AND webpage_id = '"+topics2("webpage_id")+"'")
If(!choosen_pages.EOF)
{
Response.Write("Hej")
}
%>
//Johanna som snart blir tokig!Sv: Checka för utvalda checkboxar?!
If(!choosen_pages.EOF)
{
Response.Write("Hej")
}
Skulle i asp se ut så här:
If choosen_pages.EOF THEN ' kollar om choosen_pages är End Of File, är den det så fick vi inget svar
Response.Write "Ingen träff"
else
Respoinsw.Write "Träff" ' Här har vi fått ett svar.
End IF
//Anna-Karin
Sv: Checka för utvalda checkboxar?!
Är ny på att använda jscript istället för vbscript, men så vitt jag fattat ska det se ut som jag skrivit...Sv: Checka för utvalda checkboxar?!
Så här ser den fungerande if-satsen ut iaf:
if(topics2("webpage_id").Value == choosen_pages("webpage_id").Value)
Och jag använder .Value precis som jag gjorde när Greger tipsade mig om det tidigare...
Tack för er tid Greger och Anna-Karin!
/Johanna