Avatar billede annettef Nybegynder
17. februar 2005 - 15:58 Der er 9 kommentarer og
1 løsning

Hjælp til overførsel af id og tilhørende if sætning

Hej

Jeg har følgende side hvor jeg enten henter et id (intTekstNr) fra en tabel på siden før, eller fra en tabel på selve side.

Nu er mit problem bare lige at det ikke virker.

Her er siden:
::::KODE::::
<!--#INCLUDE FILE="config.inc"-->
<!--#INCLUDE FILE="level2.inc"-->
<%
Dim Conn, DSN, sltid, strSQL, rs, intKategoriId, SQLstmt
Response.Buffer=True
%>
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<%
sltid = Request.Querystring("sltid")

If sltid <> "" Then
  strSQL = "Delete From tekst Where tekstId = " & Request.Querystring("sltid")
  Conn.Execute(strSQL)
  Response.Redirect ("rediger_ukategori3.asp")
  'Response.Redirect ("opdateret_ok.asp")
  'Response.Write ("Den valgte tekst er nu slettet!")
 
  Else

end if
%>
<html>

<head>
<title>TELE IT COMMUNICATION ApS</title>
<Link Rel="stylesheet" href="tele-it.css" Type="text/css" > <!-- link til ekstern style sheet -->

<style type="text/css">
<!--
.style1 {color: #FFFFFF}
body {
    margin-left: 4px;
    margin-top: 0px;
   
}
.style4 {color: #969696; font-weight: bold; }
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body>
  <br>
<table width="670" border="0"><!--Indholdstabel start-->
  <tr>
    <td height="18" align="left"  valign="middle" bgcolor="969696"><span class="style1">Rediger / slet tekst</span></td>
  </tr>
  <tr>
    <td align="left">Du her nu to muligheder...<br>
      <span class="style4">1</span> Slet en tekst - klik p&aring; &quot;slet&quot;<br>
      <span class="style4">2</span> Rediger en tekst - klik p&aring; &quot;rediger&quot; <br>
      <br>
      Tilbage til kategorioversigt - <a href="rediger_tekst2.asp" target="tekst">klik her...</a> </td>
  </tr>
    <tr>
    <td></td>
  </tr><tr><td><hr>
<!--</td></tr><br>
</table>-->

<%
response.buffer = true

if (intTekstNr = request.form("kategori1")) = "" then
intTekstNr = request.form("slet")
else intTekstNr = request.form("kategori1")
end if
strSQL = "SELECT * FROM tekst WHERE tekstNr = " & intTekstNr
Set rs = Conn.Execute(strSQL)

'Tjekker om der er noget i databasen
If rs.EOF Then

  ' Hvis der ikke er ingen tekster er i DB afsendes følgende meddelse.
  Response.Write "<br><br><center><h1>Her er pt. ingen tekster!</h1></center><br><br>"

Else

  ' Men hvis DB ikke er tom, udskrives data.
  Do While Not rs.EOF

    ' Oprettelse af tabel
    Response.Write "<table border=0 cellspacing=0 cellpadding=0 width='660' align=center>"
    Response.Write "<tr><td>"

    ' Udskriv Overskrift
    Response.Write "<p>" & rs("overskrift")& "</p>"

    Response.Write "</td></tr><tr><td>"

    ' Udskriv Indhold
    Response.Write rs("indhold")

    Response.Write "</td></tr><tr><td align='left'>"
%>
         
      <table width="660" Heigth="20" border="0"><!--Knap-tabel-->
        <tr>
          <td width="80">
            <form action="rediger_ukategori3.asp" method="get">
              <!--Rediger knap -->
              <input type="hidden" name="retid" value="<%=rs("tekstId")%>">
              <input type="submit" value="Rediger">
            </form>
          </td>
          <td width="405">
            <form action="rediger_ukategori3.asp" method="get" name="slet">
              <!--slet knap -->
              <input type="hidden" name="sltid" value="<%=rs("tekstId")%>">
              <input type="hidden" name="intTekstNr" value="<%=rs("tekstNr")%>">
              <input type="submit" value="Slet">
            </form>
          </td>
        </tr>
      </table>

<%

    ' Afslutter den oprettede tabel
    Response.Write "<hr></td></tr></table><br>"

    ' Gå til næste record i rs
    rs.MoveNext

  ' Gå i loop indtil rs ikke indeholder flere records (= EOF)
  Loop

End If


' Luk forbindelse fra dbconn.inc
Conn.Close
Set Conn = Nothing
%>
    </td>
  </tr>
</table>
<!--Hovedtabel slut-->

</body>
</html>
::::SLUT::::

Er der nogen der kan se hvad fejlen er? Jeg har en ide om at det er min ifsætning det er galt med, men ved ikke hvad der er galt.

Håber nogen kan hjælpe :o)

/Annette
Avatar billede eagleeye Praktikant
17. februar 2005 - 19:06 #1
Der er noget i denen som ikke er helt som det skal være:

if (intTekstNr = request.form("kategori1")) = "" then

Hvad ønsker du den skal være tjekke om intTekstNr = request.form("kategori1") er lig hinanden eller om de to er tomme eller noget helt andet?
Avatar billede softspot Forsker
17. februar 2005 - 19:28 #2
Under alle omstændigheder vil den if-sætning altid returnere false (da det første enten vil returnere true eller false - og det bliver aldrig lig med "")...
Avatar billede annettef Nybegynder
17. februar 2005 - 21:03 #3
Jeg kan godt se problemet med min ifsætning :o)

Mit problem er at jeg har en side (side 1) hvor man vælger en kategori i en liste. Punkterne dannes ud fra nogle poster i en database. Ud fra den kategori man har valgt skal der så på denne side (side 2) som if sætningen er på, udskrives nogle tilhørende poster fra databasen.

På side 2 skal det så være muligt at slette de forskellige tekster ved at klikke på en slet knap. Men når man så har klikket på slet skal man blive på den samme side, men så bliver id'et ikke ført med over fra siden før, da det jo ikke er den man kommer fra mere.

Så derfor tænkte jeg at jeg kunne lave en if sætning og så enten helte id fra siden før, eller fra selve den form hvor man sletter teksten.

Men det kan jeg godt se ikke fungerer ret godt - så jeg tror bare at jeg deler side 2 op i to enkelte sider i stedet for.

Men hvis der er nogen der har en bedre ide, vil jeg da meget gerne høre den!

/Annette
Avatar billede eagleeye Praktikant
17. februar 2005 - 21:10 #4
Ideen er god nok men if sætningen skal rettes til, samt det felt du gememr id'et i hedder ikke slet med intTekstNr:

<input type="hidden" name="intTekstNr" value="<%=rs("tekstNr")%>">


Så ud fra det du skriver noget i stil med dette:


if request.form("intTekstNr") <> "" then
  intTekstNr = request.form("intTekstNr")
else
  intTekstNr = request.form("kategori1")
end if
Avatar billede annettef Nybegynder
18. februar 2005 - 09:15 #5
Nu har jeg prøvet at ændre på min ifsætning flere gange, men der blev ved med at komme den samme fejl. Så nu har jeg delt siden op i to i stedet for - og det fungerer som det skal.

Men hvis I lægger et svar, så kan i dele pointene - da I jo trods alt forsøgte at hjælpe med mit problem!

/Annette
Avatar billede eagleeye Praktikant
18. februar 2005 - 09:53 #6
ok et svar

men hvilken fejl?
Avatar billede annettef Nybegynder
18. februar 2005 - 10:03 #7
Det var en fejl med at intTekstNr ingen værdi havde...

/Annette
Avatar billede eagleeye Praktikant
18. februar 2005 - 10:09 #8
Arh ok det fordi slet formen bruger emthod="get"

            <form action="rediger_ukategori3.asp" method="get" name="slet">

Så skal man ikke bruge request.Form men Request.Querystring du kan evt prøve at rette if sætningen til dette så den bare bruger request det virker på både form og querystring:

f request("intTekstNr") <> "" then
  intTekstNr = request("intTekstNr")
else
  intTekstNr = request("kategori1")
end if
Avatar billede eagleeye Praktikant
18. februar 2005 - 10:09 #9
Request.Form bruges når man har sat method="post" i form tagen.
Avatar billede annettef Nybegynder
18. februar 2005 - 10:51 #10
ok - det havde jeg ikke lige tænkt på:o)

Det skal jeg huske til næste gang...
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