Avatar billede tagteam Nybegynder
22. december 2000 - 15:15 Der er 22 kommentarer og
1 løsning

Arrays

Hejsa jeg er ved at lave sådan en buddy liste og da buddy\'s søgning kommer
fra en access db
laver jeg brugerens info i cookie for ikke at belaste db for meget,

så se her problemmet er jeg at jeg vil gerne fjerne nogen af mine buddys men
hvordan fjerner jeg en fra min array\'  ?
jeg har prøvet på den som kan ses der nede med
Redim myArray Erase myArray \" & myArray(i) <--  men det virker vist ikke,

<%
if strBuddys =\"\" then
  response.write \"<font color=\'silver\'>Du har ingen buddys</font>\"
else
Dim myString,myArray
myString = strbuddys
myArray = Split(MyString, \";\")

end if


For i = 0 to UBound(myArray, 1)
    Response.Write(\"<tr><td width=\'10%\'>#\" & i & \"</td>\")
    Response.Write(\"<td width=\'60%\' align=\'left\'>\" & myArray(i) & \"</td>\")
    Response.Write(\"<td width=\'10%\'>\" & \"<a href=\'test.asp\' Onclick (Redim
myArray Erase myArray \" & myArray(i) & \">Fjern</a>\" & \"</td>\")
    Response.Write(\"<td width=\'20%\'>\" & \"kig\" & \"</td></tr>\")
Next

Response.Write(\"</table>\")


mvh dg
Avatar billede tdaugaard Nybegynder
22. december 2000 - 15:18 #1
På den måde du laver det her skriver, så kan du gøre det ved at skrive:

strBuddys = Replace(strBuddys, \"minbuddy;\", \"\")
Avatar billede tdaugaard Nybegynder
22. december 2000 - 15:20 #2
Og så \"splitter\" du bare den streng igen for at opdatere..

<%
if request(\"act\") = \"rm\" then
  strbuddys = replace(strbuddys, request(\"buddy\") & \";\", \"\")
end if

if strBuddys =\"\" then
  response.write \"<font color=\'silver\'>Du har ingen buddys</font>\"
else
  Dim myString,myArray
  myString = strbuddys
  myArray = Split(MyString, \";\")
end if

For i = 0 to UBound(myArray, 1)
    Response.Write(\"<tr><td width=\'10%\'>#\" & i & \"</td>\")
    Response.Write(\"<td width=\'60%\' align=\'left\'>\" & myArray(i) & \"</td>\")
    Response.Write(\"<td width=\'10%\'>\" & \"<a href=\'test.asp?act=rm&buddy=\" & myArray(i) & \"\'>Fjern</a>\" & \"</td>\")
    Response.Write(\"<td width=\'20%\'>\" & \"kig\" & \"</td></tr>\")
Next

Response.Write(\"</table>\")
%>
Avatar billede tdaugaard Nybegynder
22. december 2000 - 15:21 #3
Sådan KAN din test.asp se ud.
Avatar billede tagteam Nybegynder
23. december 2000 - 19:14 #4
tdaugaard ja det ser rigtigt ud men det fungere ikke helt,, hjælp mig lige med det,,

fejlen der kommer ?->

Der opstod en Microsoft VBScript-kørselsfejl fejl \'800a000d\'

Typerne passer ikke sammen: \'UBound\'

/foundation/test.asp, linje 66

-- linje 66 er --
For i = 0 to UBound(myArray, 1)



Avatar billede tagteam Nybegynder
24. december 2000 - 07:55 #5
okay har fået det til at virke næsten,

den fjerner den buddy som den skal men den fjerner osse alle ; og det skal den ikke
ellers kan man jo ikke adskille dem fra hinanden,

?
nogen ide\'er

koden ser sådan ud nu

<%
if request(\"act\") = \"remove\" then
  strbuddys = replace(strbuddys, request(\"buds\") & \";\", \"\")
  Response.cookies(\"buddy\")(\"buddys\") = strbuddys
end if

if strBuddys =\"\" then
  response.write \"<font color=\'silver\'>Du har ingen buddys</font>\"
else
  Dim myString,myArray
  myString = strbuddys
  myArray = Split(MyString, \";\")
end if

For i = 0 to UBound(myArray, 1 )
    Response.Write(\"<tr><td width=\'10%\'>#\" & i & \"</td>\")
    Response.Write(\"<td width=\'60%\' align=\'left\'>\" & myArray(i) & \"</td>\")
    Response.Write(\"<td width=\'10%\'>\" & \"<a href=\'test.asp?act=remove&buds=\" & myArray(i) & \"\'>Fjern</a>\" & \"</td>\")
    Response.Write(\"<td width=\'20%\'>\" & \"kig\" & \"</td></tr>\")
Next

Response.Write(\"</table>\")
%> <%
if request(\"act\") = \"remove\" then
  strbuddys = replace(strbuddys, request(\"buds\") & \";\", \"\")
  Response.cookies(\"buddy\")(\"buddys\") = strbuddys
end if

if strBuddys =\"\" then
  response.write \"<font color=\'silver\'>Du har ingen buddys</font>\"
else
  Dim myString,myArray
  myString = strbuddys
  myArray = Split(MyString, \";\")
end if

For i = 0 to UBound(myArray, 1 )
    Response.Write(\"<tr><td width=\'10%\'>#\" & i & \"</td>\")
    Response.Write(\"<td width=\'60%\' align=\'left\'>\" & myArray(i) & \"</td>\")
    Response.Write(\"<td width=\'10%\'>\" & \"<a href=\'test.asp?act=remove&buds=\" & myArray(i) & \"\'>Fjern</a>\" & \"</td>\")
    Response.Write(\"<td width=\'20%\'>\" & \"kig\" & \"</td></tr>\")
Next

Response.Write(\"</table>\")
%>
Avatar billede tdaugaard Nybegynder
24. december 2000 - 10:57 #6
Du ved godt du har skrevet kocden to gange der, ikke ?
Avatar billede tdaugaard Nybegynder
24. december 2000 - 11:03 #7
DET her virker med garanti! Det er testet:

<%
    strBuddys = Request.Cookies(\"buddy\")(\"buddys\")
   
    If Request(\"act\") = \"remove\" Then
        strBuddys = Replace(strBuddys, Request(\"buds\") & \";\", \"\")
        Response.Cookies(\"buddy\")(\"buddys\") = strBuddys
    end if

    If strBuddys =\"\" Then
        response.write \"<font color=\'silver\'>Du har ingen buddys</font>\"
    else
        Dim myString,myArray
        myString = strbuddys
        myArray = Split(MyString, \";\")

        Response.Write(\"<table border=0 cellpadding=1 cellspacing=1>\")
        For i = 0 to UBound(myArray, 1 )
            Response.Write(\"<tr><td width=\'10%\'>#\" & i & \"</td>\")
            Response.Write(\"<td width=\'60%\' align=\'left\'>\" & myArray(i) & \"</td>\")
            Response.Write(\"<td width=\'10%\'>\" & \"<a href=\'test.asp?act=remove&buds=\" & myArray(i) & \"\'>Fjern</a>\" & \"</td>\")
            Response.Write(\"<td width=\'20%\'>kig</td></tr>\")
        Next
        Response.Write(\"</table>\")
    End If
%>
Avatar billede tdaugaard Nybegynder
24. december 2000 - 11:07 #8
Denne her linie:

strBuddys = Request.Cookies(\"buddy\")(\"buddys\")

jeg vidste ikke om du i forvejen havde lavet noget der ville \"finde\" listen, men det gør denne her.
Avatar billede tdaugaard Nybegynder
24. december 2000 - 12:02 #9
hvad faen er der galt ? Det virker da !!!
Avatar billede tagteam Nybegynder
24. december 2000 - 12:03 #10
det har jeg lavet, problem\'et er at den laver 2 tomme array\'s med intet i andet end ;
og hvis man fjerne dem når den \"man\" har add\'et andre på ens liste så fjerner den jo alle ;
og så bliver det til et helt lant ord..
btw fik pastede 2 gange lagde ikke mærke til det,

her er hele kilde koden,


<%
  Response.Expires = 0
  Response.Buffer = True
%>
<head>
<link rel=\"stylesheet\" href=\"/foundation/css/foundation.css\" type=\"text/css\">
</head>
<%
if Request.ServerVariables(\"REQUEST_METHOD\") = \"POST\"  then

  Response.cookies(\"buddy\")(\"buddys\") = Request.Form(\"addbud\") & \";\" & Request.Form(\"addbuds\")
  Response.Cookies(\"buddy\")(\"Navn\") = Request.Form(\"Navn\")
  Response.Cookies(\"buddy\")(\"Email\") = Request.Form(\"Email\")
  Response.cookies(\"buddy\")(\"step\") = Request.Form(\"step\")
  Response.cookies(\"buddy\")(\"hl\") = Request.Form(\"hl\")
  Response.Cookies(\"buddy\").Expires = Date+365
End If

Session(\"strNavn\") = Request.Cookies(\"buddy\")(\"Navn\")
Session(\"strbuddys\") = Request.Cookies(\"buddy\")(\"buddys\") 


strNavn = Request.Cookies(\"buddy\")(\"Navn\")
strEmail = Request.Cookies(\"buddy\")(\"Email\")
strBuddys = Request.Cookies(\"buddy\")(\"buddys\")
strStep = Request.Cookies(\"buddy\")(\"step\")
if strStep = \"\" Then strStep=\"Cookie_off\"
MyVar = strStep
      Select Case MyVar
%>

<% case \"Cookie_on\" %>
hejsa <%response.write Session(\"strNavn\") %>
<br>
<form method=\"POST\" action=\"test.asp\" name=\"POST\">
<input type=\"hidden\" value=\"Cookie_on\" name=\"step\">
<table class=\"newsarea\" width=\"60%\">
<input type=\"hidden\" name=\"addbuds\" value=\"<%= strBuddys %>\">
<tr align=\"center\">
  <td width=\"25%\" align=\"center\"><font color=\"silver\">Add buddy</td>
  <td width=\"50%\"><input type=\"text\" name=\"addbud\" size=\"30\" ></td>
  <td width=\"25%\"><input class=\"forms\" type=\"submit\" name=\"action\" value=\"Add\"</td>
  </tr>
</table></form>
<table class=\"newsarea\" width=\"40%\">
<tr>
  <td colspan=\"2\" align=\"center\"><font color=\"silver\"><b>Buddyliste</b></font></td>
  </tr>
  <tr>
  <td>
<%
    strBuddys = Request.Cookies(\"buddy\")(\"buddys\")
   
    If Request(\"act\") = \"remove\" Then
        strBuddys = Replace(strBuddys, Request(\"buds\") & \";\", \"\")
        Response.Cookies(\"buddy\")(\"buddys\") = strBuddys
    end if

    If strBuddys =\"\" Then
        response.write \"<font color=\'silver\'>Du har ingen buddys</font>\"
    else
        Dim myString,myArray
        myString = strbuddys
        myArray = Split(MyString, \";\")

        Response.Write(\"<table border=0 cellpadding=1 cellspacing=1>\")
        For i = 0 to UBound(myArray, 1 )
            Response.Write(\"<tr><td width=\'10%\'>#\" & i & \"</td>\")
            Response.Write(\"<td width=\'60%\' align=\'left\'>\" & myArray(i) & \"</td>\")
            Response.Write(\"<td width=\'10%\'>\" & \"<a href=\'test.asp?act=remove&buds=\" & myArray(i) & \"\'>Fjern</a>\" & \"</td>\")
            Response.Write(\"<td width=\'20%\'>kig</td></tr>\")
        Next
        Response.Write(\"</table>\")
    End If
%>
    </td>
  </tr>
</table>

<% case \"Cookie_off\" %>   
<form method=\"POST\" action=\"test.asp\" name=\"post\">
<input type=\"hidden\" value=\"Cookie_on\" name=\"step\">
<table class=\"newsarea\">
<tr><td>Navn</td><td><input type=\"text\" name=\"navn\" size=\"30\" value=\"\"></tr>
<tr><td>E-mail</td><td><input type=\"text\" name=\"email\" size=\"30\" value=\"\"></tr>
<tr>
<td colspan=\"2\" align=\"center\"><input class=\"forms\" type=\"Submit\" name=\"Action\" value=\"Gem\"></td>
</tr>
</table></form>
<%End Select %>

Avatar billede tagteam Nybegynder
24. december 2000 - 12:04 #11
rolig nu, det er jo jule aften\'s dag, og man kan jo ikke lige side foran kassen hele tiden,
Avatar billede tdaugaard Nybegynder
24. december 2000 - 12:05 #12
Nåå, nej men det jeg skrev virker helt fint .. jeg har testet det inden jeg postede..
Avatar billede tagteam Nybegynder
24. december 2000 - 12:32 #13
det virker men der er da stadig fejl i det,
jeg kan da ikke bruge det hvis der kommer 2 tomme felter og end videre at den laver det hele om til en lang linje hvis man prøver at fjerne de tomme felter,

Avatar billede tdaugaard Nybegynder
24. december 2000 - 12:33 #14
Jeg er i gang med en løsning :-)
Avatar billede tdaugaard Nybegynder
24. december 2000 - 12:45 #15
Nu har jeg testet, rettet fejl, lavet om og gjort ved ;o)
Og NU skulle det virke.

<%
    Option Explicit
    Dim strAct, strNavn, strEmail, strBuddys, strStep, myArray, I
   
    Response.Expires = 0
    Response.Buffer = True
%>
<html>
<head>
<link rel=\"stylesheet\" href=\"/foundation/css/foundation.css\" type=\"text/css\">
</head>
<%
    strAct = Request(\"act\")
   
    strNavn = Request.Cookies(\"buddy\")(\"Navn\")
    strEmail = Request.Cookies(\"buddy\")(\"Email\")
    strBuddys = Request.Cookies(\"buddy\")(\"buddys\")
    strStep = LCase(Request.Cookies(\"buddy\")(\"step\"))

    If strAct = \"add\" Then
        strBuddys = Request(\"addbud\") & \";\" & strBuddys

        Response.Cookies(\"buddy\")(\"Navn\") = Request(\"Navn\")
        Response.Cookies(\"buddy\")(\"Email\") = Request(\"Email\")
        Response.Cookies(\"buddy\")(\"step\") = Request(\"step\")
        Response.Cookies(\"buddy\")(\"hl\") = Request(\"hl\")
        Response.Cookies(\"buddy\").Expires = Date + 365
    ElseIf strAct = \"remove\" Then
        strBuddys = Replace(strBuddys, Request(\"buds\"), \"\")
        strBuddys = Replace(strBuddys, \";;\", \";\")
    End If

    If strBuddys = String(Len(strBuddys), \";\") Then strBuddys = \"\"
    If Right(strBuddys, 1) = \";\" Then strBuddys = Left(strBuddys, Len(strBuddys) - 1)
    If Left(strBuddys, 1) = \";\" Then strBuddys = Right(strBuddys, Len(strBuddys) - 1)
   
    Response.Cookies(\"buddy\")(\"buddys\") = strBuddys
   
    Session(\"strNavn\") = strNavn
    Session(\"strbuddys\") = strBuddys

    If strStep = \"\" Then strStep = \"cookie_off\"
   
    Response.Write    \"<b>\" &  strBuddys & \"</b><br>\"
    If strStep = \"cookie_on\" Then
%>
    Hejsa <%response.write Session(\"strNavn\") %>
    <br>
    <form method=\"POST\" action=\"bud.asp\" name=\"POST\">
        <input type=\"hidden\" value=\"add\" name=\"act\">
        <input type=\"hidden\" value=\"cookie_on\" name=\"step\">

        <table class=\"newsarea\" width=\"60%\">
            <tr align=\"center\">
                <td width=\"25%\" align=\"center\"><font color=\"silver\">Add buddy</td>
                <td width=\"50%\"><input type=\"text\" name=\"addbud\" size=\"30\" ></td>
                <td width=\"25%\"><input class=\"forms\" type=\"submit\" name=\"action\" value=\"Add\"</td>
            </tr>
        </table>
    </form>
    <table class=\"newsarea\" width=\"40%\">
        <tr> <td colspan=\"2\" align=\"center\"><font color=\"silver\"><b>Buddyliste</b></font></td></tr>
        <tr>
            <td>
<%
    If strBuddys =\"\" Then
        response.write \"<font color=\'silver\'>Du har ingen buddys</font>\"
    Else
        myArray = Split(strBuddys, \";\")

        Response.Write(\"<table border=0 cellpadding=1 cellspacing=1>\")
        For i = 0 To UBound(myArray)
            If Not myArray(i) = \"\" Then
                Response.Write(\"<tr><td width=\'10%\'>#\" & i + 1 & \"</td>\")
                Response.Write(\"<td width=\'60%\' align=\'left\'>\" & myArray(i) & \"</td>\")
                Response.Write(\"<td width=\'10%\'>\" & \"<a href=\'bud.asp?act=remove&buds=\" & myArray(i) & \"\'>Fjern</a>\" & \"</td>\")
                Response.Write(\"<td width=\'20%\'>kig</td></tr>\")
            End If
        Next
        Response.Write(\"</table>\")
    End If
%>
            </td>
        </tr>
    </table>
<%    ElseIf strStep = \"cookie_off\" Then %>
    <form method=\"POST\" action=\"bud.asp\" name=\"post\">
        <input type=\"hidden\" value=\"Cookie_on\" name=\"step\">
        <table class=\"newsarea\">
            <tr><td>Navn</td><td><input type=\"text\" name=\"navn\" size=\"30\" value=\"\"></tr>
            <tr><td>E-mail</td><td><input type=\"text\" name=\"email\" size=\"30\" value=\"\"></tr>
            <tr><td colspan=\"2\" align=\"center\"><input class=\"forms\" type=\"Submit\" name=\"Action\" value=\"Gem\"></td></tr>
        </table>
    </form>
<%    End If %>
Avatar billede tdaugaard Nybegynder
24. december 2000 - 12:46 #16
Du skal nok lige erstatte \"bud.asp\" med \"test.asp\" så det var som du ville have det
Avatar billede tagteam Nybegynder
24. december 2000 - 13:08 #17
smæk lige et svar det ser ud til at virke,
mam !!! takker skq for hjælpen,

Avatar billede tdaugaard Nybegynder
24. december 2000 - 13:09 #18
Fino :-) Det tænkte jeg nok
Avatar billede tagteam Nybegynder
24. december 2000 - 13:13 #19
well points\'ne er dine men gider du lige at hjælpe mig med at finde du af hvor den ikke husker på ens navn fra cookie , det vil sige all\'er  første gang du melder dig på husker den det men så hvis du add\' og derefter kan den ikke huske det,
Avatar billede tdaugaard Nybegynder
24. december 2000 - 13:14 #20
Jow .. se\'følig .. jeg kigger lige på det
Avatar billede tagteam Nybegynder
24. december 2000 - 13:19 #21
så mange dette osse

if Request.ServerVariables(\"REQUEST_METHOD\") = \"POST\"  then
  Response.Cookies(\"buddy\")(\"Navn\") = Request.Form(\"Navn\")
  Response.Cookies(\"buddy\")(\"Email\") = Request.Form(\"Email\")
  Response.cookies(\"buddy\")(\"step\") = Request.Form(\"step\")
  Response.Cookies(\"buddy\").Expires = Date+365
End If 

ellers virker form\'en ikke hvis man ikke har cookie\'

Avatar billede tdaugaard Nybegynder
24. december 2000 - 13:24 #22
Hvad mener du ?
Som jeg skrev har jeg lavet om på noget kode, og tilføjet lidt her og der .
Avatar billede tagteam Nybegynder
24. december 2000 - 13:26 #23
yeps men prøv at fjern cookien og så prøv den vil ikke gå videre fra tilmeld form til add buddy form, det ordner det oven over,,

så skulle der osse stå \"så mangler dette oss\"
eller hva ?,
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