Avatar billede fc-dong Nybegynder
25. marts 2002 - 22:54 Der er 11 kommentarer og
1 løsning

Hvorfor kan jeg kun vælge en nyhed

Jeg har problemer med min checkbox. Når jeg vælger - vis en nyhed virker det fint. Men vælger jeg to eller flere nyheder, ja så kommer der fejlmeddelelse, side kan ikke vises.
Hvad gør jeg galt...?

Her er koden til min nyhedsoversigt
-----------------------------------
<%@LANGUAGE="VBSCRIPT"%>
<!--#include virtual="/Connections/connDongklubben.asp" -->
<%
set rsNyheder = Server.CreateObject("ADODB.Recordset")
rsNyheder.ActiveConnection = MM_connDongklubben_STRING
rsNyheder.Source = "SELECT Personer.Personer, Nyheder.Overskrift, Nyheder.Dato, Nyheder.klokken, Nyheder.NyhederID, Visnyhed  FROM Personer INNER JOIN Nyheder ON Personer.PersonerID = Nyheder.PersonID  ORDER BY Nyheder.NyhederID DESC;"
rsNyheder.CursorType = 0
rsNyheder.CursorLocation = 2
rsNyheder.LockType = 3
rsNyheder.Open()
rsNyheder_numRows = 0
%>
<%
Dim Repeat1__numRows
Repeat1__numRows = 10
Dim Repeat1__index
Repeat1__index = 0
rsNyheder_numRows = rsNyheder_numRows + Repeat1__numRows
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then MM_removeList = MM_removeList & "&" & MM_paramName & "="
MM_keepURL="":MM_keepForm="":MM_keepBoth="":MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each Item In Request.QueryString
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & NextItem & Server.URLencode(Request.QueryString(Item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each Item In Request.Form
  NextItem = "&" & Item & "="
  If (InStr(1,MM_removeList,NextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & NextItem & Server.URLencode(Request.Form(Item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
if (MM_keepBoth <> "") Then MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
if (MM_keepURL <> "")  Then MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
if (MM_keepForm <> "") Then MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>
<html>
<head>
<title>v&aelig;lg nyhed test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="vaelgnyhed" method="post" action="/dongklubben/test_nyhed_detajle.asp">
  <table width="500" border="0" cellspacing="0" cellpadding="0" align="center" name="nyhed">
    <tr>
      <td><b>V&aelig;lg nyhed</b></td>
      <td><b>Dato</b></td>
      <td><b>Nyhed</b></td>
      <td><b>Person</b></td>
      <td>&nbsp;</td>
    </tr>
    <%
While ((Repeat1__numRows <> 0) AND (NOT rsNyheder.EOF))
%>
    <tr>
      <td>
        <div align="center">
          <input <%If (CStr(rsNyheder.Fields.Item("NyhederID").Value) = CStr("valg")) Then Response.Write("CHECKED") : Response.Write("")%> type="checkbox" value="<%=rsNyheder.Fields.Item("NyhederID")%>" name="valg">
        </div>
      </td>
      <td><%=(rsNyheder.Fields.Item("Dato").Value)%></td>
      <td><A HREF="/dongklubben/test_nyhed_detajle.asp?<%= MM_keepURL & MM_joinChar(MM_keepURL) & "NyhederID=" & rsNyheder.Fields.Item("NyhederID").Value %>"><%=(rsNyheder.Fields.Item("Overskrift").Value)%></A></td>
      <td><%=(rsNyheder.Fields.Item("Personer").Value)%></td>
      <td>&nbsp;</td>
    </tr>
    <%
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  rsNyheder.MoveNext()
Wend
%>
    <tr>
      <td>&nbsp;</td>
      <td>
        <input type="submit" name="Submit" value="Vis nyheder">
      </td>
      <td>
        <input type="reset" name="Submit2" value="Reset">
      </td>
      <td>&nbsp; </td>
      <td>&nbsp;</td>
    </tr>
  </table>
  <br>
  <br>
  <br>
</form>
<p>&nbsp;</p>
<div align="center"></div>
</body>
</html>
<%
rsNyheder.Close()
%>
Avatar billede erikjacobsen Ekspert
25. marts 2002 - 23:02 #1
Når alle checkboxe hedder "valg" så får du en liste af deres
værdier, adskillt af komme, og så er der sikkert en SQL-sætning
der går galt.

Tag lige og indstil din IE til at vise den rigtige fejl, eller skift til
fx. Netscape. Det gør livet meget nemmere.
Avatar billede fc-dong Nybegynder
25. marts 2002 - 23:08 #2
Jeg har kaldt min checkbox valg, men jeg har lavet en Repeat region på den linje. så i realiteten hedder boxen det sammen hele vejen ned...?
Hvad gør man ellers
Avatar billede fc-dong Nybegynder
25. marts 2002 - 23:12 #3
Her er den fejl som kommer frem
-------------------------------
Microsoft JET Database Engine error '80040e14'

Syntax error (comma) in query expression 'NyhederID = 0 OR NyhederID = 219, 217'.

/dongklubben/test_nyhed_detajle.asp, line 20
Avatar billede fc-dong Nybegynder
25. marts 2002 - 23:16 #4
Her er koden til den side som skal vise de nyheder som er valg på oversigten
--------------------------
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../Connections/connNyheder.asp" -->
<%
Dim rsNyhedsdetajle__MMColParam
rsNyhedsdetajle__MMColParam = "0"
if (Request.QueryString("NyhederID")    <> "") then rsNyhedsdetajle__MMColParam = Request.QueryString("NyhederID") 
%>
<%
Dim rsNyhedsdetajle__MMColParam1
rsNyhedsdetajle__MMColParam1 = "0"
if (Request.Form("valg")          <> "") then rsNyhedsdetajle__MMColParam1 = Request.Form("valg")         
%>
<%
set rsNyhedsdetajle = Server.CreateObject("ADODB.Recordset")
rsNyhedsdetajle.ActiveConnection = MM_connNyheder_STRING
rsNyhedsdetajle.Source = "SELECT Billede, Brodtekst, Dato, klokken, ManederID, NyhederID, Overskrift, Billedetekst, PersonID, Visnyhed  FROM Nyheder  WHERE NyhederID = " + Replace(rsNyhedsdetajle__MMColParam, "'", "''") + " OR NyhederID = " + Replace(rsNyhedsdetajle__MMColParam1, "'", "''") + ""
rsNyhedsdetajle.CursorType = 0
rsNyhedsdetajle.CursorLocation = 2
rsNyhedsdetajle.LockType = 3
rsNyhedsdetajle.Open()
rsNyhedsdetajle_numRows = 0
%>
<%
Dim Repeat1__numRows
Repeat1__numRows = -1
Dim Repeat1__index
Repeat1__index = 0
rsNyhedsdetajle_numRows = rsNyhedsdetajle_numRows + Repeat1__numRows
%>
<html>
<head>
<title>Nyhed detajle TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div align="center">
  <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>
        <div align="center"><img src="gfx/naehedgfx.gif" width="500" height="15"></div>
      </td>
    </tr>
  </table>
</div>
<table width="500" border="0" cellpadding="2" cellspacing="2" align="center" class="tabelnyheder">
  <%
While ((Repeat1__numRows <> 0) AND (NOT rsNyhedsdetajle.EOF))
%>
  <tr>
    <td width="4">&nbsp;</td>
    <td colspan="2"><font size="4" class="artikeloverskrift"><%=(rsNyhedsdetajle.Fields.Item("Overskrift").Value)%></font></td>
    <td width="8">&nbsp;</td>
  </tr>
  <tr>
    <td width="4">&nbsp;</td>
    <td valign="top" width="421">
      <font size="3" color="#000000" class="artikeltekst"><%=Replace(rsNyhedsdetajle.Fields.Item("Brodtekst") &"", vbCrLf, "<br>") %> </font></td>
    <td valign="top" width="45">
      <div align="right"><font size="3" color="#000000" class="artikeltekst">
        <% If rsNyhedsdetajle.Fields.Item("Billede").Value <> "" Then %>
        <img src="<%=(rsNyhedsdetajle.Fields.Item("Billede").Value)%>" border="1" align="<%= RTrim((rsNyhedsdetajle.Fields.Item("Billede").Value)) %>" alt="<%=(rsNyhedsdetajle.Fields.Item("Billedetekst").Value)%>">
        <% End If %>
        </font> </div>
    </td>
    <td width="8">&nbsp;</td>
  </tr>
  <%
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  rsNyhedsdetajle.MoveNext()
Wend
%>
  <tr>
    <td width="4">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
    <td width="8">&nbsp;</td>
  </tr>
</table>
<div align="center">
  <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td height="&frac12;" valign="middle" align="center">
        <div align="center"><img src="gfx/naehedundergfx.gif" width="500" height="10"></div>
      </td>
    </tr>
  </table>
</div>
</body>
</html>
<%
rsNyhedsdetajle.Close()
%>
Avatar billede erikjacobsen Ekspert
25. marts 2002 - 23:28 #5
Ja, og som jeg antydede så er

  ...OR NyhederID = 219, 217

en syntaksfej i SQL. Hvis du anvender et nogenlunde fornuftigt
SQL-system (jeg vægrer mig ved at kalde Access for sådan et, men
det virker vist der), så kan du nok

... OR NyhederID in (219, 217)
Avatar billede fc-dong Nybegynder
25. marts 2002 - 23:34 #6
Det virker fint.
Jeg takker mange gange
Avatar billede fc-dong Nybegynder
25. marts 2002 - 23:37 #7
Ved du forresten hvad det er man skal ændre i sin explore, så jeg kan se fejlmeddelelserne i explore 6
Avatar billede erikjacobsen Ekspert
25. marts 2002 - 23:42 #8
Og så skal jeg vel levere et svar ... :)

Indstilling i IE6? - aner det ikke - og det interesserer mig heller ikke....
Som webudvikler burde du bruge en anden browser - syn's jeg
Avatar billede erikjacobsen Ekspert
25. marts 2002 - 23:42 #9
.
Avatar billede fc-dong Nybegynder
25. marts 2002 - 23:44 #10
Du har nok ret. Men jeg har vænnet mig til explore, men det er rart med netscape når explore svigter...
Jeg takker mange gange for hjælpen
Avatar billede ejay Novice
26. marts 2002 - 01:24 #11
fc-dong/ i browseren trykker du funktioner og så internetindstillinger og så avanceret og der ændrer du det.
Avatar billede fc-dong Nybegynder
26. marts 2002 - 09:04 #12
ok, jeg har fået det til at virke.....

Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester