Avatar billede kate Nybegynder
08. november 2000 - 10:33 Der er 11 kommentarer og
1 løsning

slet via checkboxe

Dette er en tryglen om hjælp.

Det denne function skal gøre er at løbe igennem en form (kollokation). Denne form indeholder bl. a  et antal checkboxe (antal) og et tilhørende tekstfelt for hver checkbox. Teksten i tekstfeltet hentes i en database og er unikt defineret via et KollID. Når functionen kaldes skal den løbe formen igennem og hvis ckeckboxen er afkrydset skal tekstfeltet slettes i databasen. Der skal komme en confirm før den første slettes og hvis den får ok slettes alle. Hvis ikke ok slettes ingen

function sletmarkerede(antal){
    var j
    var taeller
    var foerste
    foerste = 0;
    taeller = 0;

    for (j = 1; j <=antal; j++){
    box = eval(\"document.kollokation.checkbox_\" + j);
    koll = eval(\"document.kollokation.KollID_\" + j);

    if (box.checked == true){
    taeller = taeller + 1;
   
        if ((taeller == 1) && (confirm(\"ok\"))){
        foerste = 1;
        //alert(koll.value)
        document.location=\"<%= strFilnavn %>&call=fjern&lemmaid=<% = int(request(\"id\")) %>&kollid=\"+koll.value }

        if ((taeller > 1) && (foerste == 1 )){
        //alert(koll.value)
        document.location=\"<%= strFilnavn %>&call=fjern&lemmaid=<% = int(request(\"id\")) %>&kollid=\"+koll.value; }
        }
    }
}

box inderholder værdierne af den aktuelle checkbox
koll indeholder den tilhørende unikke værdi for tekstfeltet

når jeg bruger alert\'en viser den at jeg får de rigtige koll.values med.

document.location ....  virker som den skal når man sletter tekstfelterne enkeltvis. call=fjern&lemmaid=<% = int(request(\"id\")) %>&kollid=\"+koll.value; kalder ned til en Sql - delete der kræver et kollid (og lemma).

Efter sql har deletet, laves der en refresh af skræmbilledet.

PROBLEM
når jeg kalder funcktionen sletter den kun det første og det sidste tekstfelt hvor checkboxene er markerede. Hvis jeg tilføjer alert\'erne og trykke ok for dem jeg vil slette, virker den fint.
Avatar billede kasseper Nybegynder
08. november 2000 - 13:23 #1
Må man se kalderen til funktionen sletmarkerede....!
Avatar billede kate Nybegynder
08. november 2000 - 13:31 #2
kaldet til sletmarkerede

Response.Write \"<a href=\"\"java script:sletmarkerede(\" & antal & \")\"\" target=\'_self\'>[x]</a>\" & vbCrLf


i fjern  (call=fjern) står 

SQL = \"DELETE FROM Kollokation WHERE KollID = \" & kollid & \";\"
SET oRs = dataconn.Execute(SQL)

og
 
response.redirect strFilnavn & \"&refresh=true&call=rediger&id=\" & lemmaid

jeg har tænkt på om problemet er at siden skal \'refresh\'es flere gange i en løkke. Er dethelt alternative måder at håndtere det på?
Avatar billede kasseper Nybegynder
08. november 2000 - 14:38 #3
Må vi ikke se hele koden.....!
Iøvrigt skriver du at DINE checkboxe hedder antal, men et sæt checkboxe har flere navne, det er radiobuttons der har et gruppe navn, jeg ved ikke om det er det du mener.....
Avatar billede kate Nybegynder
08. november 2000 - 14:48 #4
selvfølgelig må du se hele koden, men jeg er bange for at den gør mere galt end godt - der er alt for meget der ikke er relevant.

Jeg vil gerne høre om at lave functionen sletmarkerede ()så den sender en samlet række kollid\'er (dem der har en true checkbox) ned og blive slettet i *** if strcall=fjern

<%@ LANGUAGE=\"VBSCRIPT\" %>
<% response.Buffer = True
Server.ScriptTimeOut = 300
\'Filens navn:
win = int(request(\"win\"))
strFilnavn = \"kollokation.asp?win=\" & win
colspan = 11
menu = FALSE
%>

<!--#include file=\"inc/start_standardside_01_inc.asp\"-->


<script language=\"JavaScript\">
    <!-- \'bruges til at checke formfelters indhold inden der submittes.

    function fjern(kollid) {
            if (confirm (\"Denne handling vil fjerne kollokationen til det aktuelle lemma fra databasen øjeblikkeligt. Vil du fortsætte?\")){
            document.location=\"<%= strFilnavn %>&call=fjern&lemmaid=<% = int(request(\"id\")) %>&kollid=\"+kollid
        }
    }
   
   
function kopier(kollid) {
            <% if win = 1 then
            thiswin = 2
            else
            thiswin = 1
            end if %>
           
            //her kan der spørges om feltet findes i den anden frame

            parent.frame<%=thiswin%>.kollokation.L2KOLL_ny.value = document.kollokation.elements[kollid+1].value
            parent.frame<%=thiswin%>.kollokation.L1KOLL_ny.value = document.kollokation.elements[kollid+2].value
            parent.frame<%=thiswin%>.kollokation.L2KOLLFORK_ny.value = document.kollokation.elements[kollid+3].value
            //parent.frame<%=thiswin%>.kollokation.submit() //dette virker ikke - opdatering af modsat frame (??)
    }
   
    var checkflag=\"false\";
   
    function markeralle(antal) {
        var j
       
        if (checkflag == \"false\") {
            for (j = 1; j <= antal; j++) {
            box = eval(\"document.kollokation.checkbox_\" + j);
            if (box.checked == false) box.checked = true;}
            checkflag = \"true\";
        }else{
            for (j = 1; j <=antal; j++) {
            box = eval(\"document.kollokation.checkbox_\" + j);
            if (box.checked == true) box.checked = false;}
            checkflag = \"false\";
        }
    }


    function sletmarkerede(antal){
        var j
        var taeller
        var foerste
        foerste = 0;
        taeller = 0;
       
        for (j = 1; j <=antal; j++){
            box = eval(\"document.kollokation.checkbox_\" + j);
            koll = eval(\"document.kollokation.KollID_\" + j);
            if (box.checked == true){
           
            /*gemme kollid i en stack -array
           
            færdig med if
           
           
           
        */
           
/*                taeller = taeller + 1;
                if ((taeller == 1) && (confirm(\"ok\"))){
                foerste = 1;
                alert(koll.value)               
                //document.location=\"<%= strFilnavn %>&call=fjern&lemmaid=<% = int(request(\"id\")) %>&kollid=\"+koll.value               
                }
                if ((taeller > 1) && (foerste == 1 )){
                alert(koll.value)
                //document.location=\"<%= strFilnavn %>&call=fjern&lemmaid=<% = int(request(\"id\")) %>&kollid=\"+koll.value
                }
*/            }       
        }
    }
       
   
    //-->
</script>

<!--#include file=\"inc/start_standardside_02_inc.asp\"-->

<%
\'defaulting:
if strCall = \"\" then strCall = \"rediger\"


\'******* VISNINGER ********

\'******** OPDATERINGER *********


\'redigering (visning)
if strCall = \"rediger\" then

    id = request(\"id\")

    response.write \"<form action=\'\" & strFilnavn & \"&call=rediger_evaluer\' method=\'post\' name=\'kollokation\'>\"
    Response.Write \"<input type=\'hidden\' name=\'lemmaid\' value=\'\" & id & \"\'>\"
   
    Response.Write \"<tr>\" & vbCrLf
    Response.Write \"<td colspan=\'2\' valign=\'top\'>&nbsp;</td>\" & vbCrLf
    Response.Write \"<td colspan=\'3\' valign=\'top\'><strong>SPA-KOLL</strong></td>\" & vbCrLf
    Response.Write \"<td colspan=\'3\' valign=\'top\'><strong>DK-KOLL</strong></td>\" & vbCrLf
    Response.Write \"<td colspan=\'3\' valign=\'top\'><strong>FORK</strong></td>\" & vbCrLf
    Response.Write \"<td colspan=\'1\' valign=\'top\'>&nbsp;</td>\" & vbCrLf
    Response.Write \"</tr>\" & vbCrLf   
           
    Response.Write \"<tr>\" & vbCrLf
    Response.Write \"<td colspan=\'2\' valign=\'top\'>&nbsp;</td>\" & vbCrLf
    Response.Write \"<td colspan=\'3\' valign=\'top\'><input class=\'onelinepopupkollokation\' type=\'text\' size=\'25\' name=\'L2KOLL_ny\' value=\'\'></td>\" & vbCrLf
    Response.Write \"<td colspan=\'3\' valign=\'top\'><input class=\'onelinepopupkollokation\' type=\'text\' size=\'25\' name=\'L1KOLL_ny\' value=\'\'></td>\" & vbCrLf
    Response.Write \"<td colspan=\'3\' valign=\'top\'><input class=\'onelinepopupkollokation\' type=\'text\' size=\'25\' name=\'L2KOLLFORK_ny\' value=\'\'></td>\" & vbCrLf
    Response.Write \"<td colspan=\'1\' valign=\'top\'>&nbsp;</td>\" & vbCrLf
    Response.Write \"</tr>\" & vbCrLf   

    call lodret_tabel_spacer(7,10)
   
   
    SQL = \"SELECT * FROM kollokation WHERE lemmaid = \" & id & \";\"
    SET rsTmp = dataconn.Execute(SQL)

    antal = 0
    i = 0
    y = 5
   
   
    do while not rsTmp.eof
        antal = antal + 1
        rsTmp.MoveNext
    loop
   
    if antal>0 then
        Response.Write \"<tr><td colspan=\'12\'>\" & vbCrLf
        Response.Write \"<a href=\"\"java script:markeralle(\" & antal & \")\"\" target=\'_self\'>[o]</a><BR>\" & vbCrLf
        Response.Write \"</td></tr>\" & vbCrLf
        Response.Write \"<tr><td colspan=\'12\'>&nbsp;</td></tr>\" & vbCrLf
    end if
   
    SET rsTmp = dataconn.Execute(SQL)
    do while not rsTmp.eof
        i = i + 1

        Response.Write \"<tr>\" & vbCrLf
        Response.Write \"<td colspan=\'1\' valign=\'top\'><INPUT type=\'checkbox\' id=\'checkbox_\" & i & \"\'  name=\'checkbox_\" & i & \"\'></td>\"
        Response.Write \"<td colspan=\'1\' valign=\'top\'><a href=\"\"java script:fjern(\" & getValue(\"KollID\") & \")\"\" target=\'_self\'><img src=\'images/btn_trash.gif\' border=\'0\' alt=\'slet\'></a><br>\"
        Response.Write \"<a href=\"\"java script:kopier(\" & y & \")\"\" target=\'_self\'><img src=\'images/btn_copy.gif\' border=\'0\' alt=\'kopier\'></a>\"
        Response.Write \"<input type=\'hidden\' name=\'KollID_\" & i & \"\' value=\'\" & getValue(\"KollID\") & \"\'>&nbsp;</td>\"
        Response.Write \"<td colspan=\'3\' valign=\'top\'><input class=\'onelinepopupkollokation\' type=\'text\' size=\'25\' id=\'L2KOLL_\" & i & \"\' name=\'L2KOLL_\" & i & \"\' value=\"\"\" & getValue(\"L2KOLL\") & \"\"\"></td>\" & vbCrLf
        Response.Write \"<td colspan=\'3\' valign=\'top\'><input class=\'onelinepopupkollokation\' type=\'text\' size=\'25\' id=\'L1KOLL_\" & i & \"\' name=\'L1KOLL_\" & i & \"\' value=\"\"\" & getValue(\"L1KOLL\") & \"\"\"></td>\" & vbCrLf
        Response.Write \"<td colspan=\'3\' valign=\'top\'><input class=\'onelinepopupkollokation\' type=\'text\' size=\'25\' id=\'L2KOLLFORK_\" & i & \"\' name=\'L2KOLLFORK_\" & i & \"\' value=\"\"\" & getValue(\"L2KOLLFORK\") & \"\"\"></td>\" & vbCrLf
        Response.Write \"<td colspan=\'1\' valign=\'top\'></td>\" & vbCrLf
        Response.Write \"</tr>\" & vbCrLf   
       
        y = y + 4
        rsTmp.movenext

        loop
           
    if antal > 0 then   
        Response.Write \"<tr><td colspan=\'12\'>\"
        Response.Write \"<a href=\"\"java script:sletmarkerede(\" & antal & \")\"\" target=\'_self\'>[x]</a>\" & vbCrLf
        Response.Write \"</td></tr>\"
    end if

    rsTmp.Close
    set rsTmp = nothing
   
    Response.Write \"<input type=\'hidden\' name=\'antalposter\' value=\'\" & i & \"\'>\"
   
    call lodret_tabel_spacer(7,30)

    response.write \"<tr>\" & vbCRLF
    Response.Write \"<td colspan=\'1\'></td>\" & vbCRLF
    Response.Write \"<td colspan=\'7\'><input type=\'submit\' value=\'  OPDATER  \' class=\'knap\' id=\'submit\' name=\'submit\'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>[<a href=\'\" & strFilnavn & \"&call=rediger&id=\" & id & \"\' target=\'_self\'>\" & application(\"strRefreshText\") & \"</a>]</b>\" & vbCRLF
    Response.Write \"</td></tr>\" & vbCRLF

    response.write \"</form>\"

end if
\'slut på redigering (visning)


\'redigering (udførelse)
if strCall = \"rediger_evaluer\" then
    lemmaid = Cstr(Request(\"lemmaid\"))
    L1KOLL_ny = Cstr(Request(\"L1KOLL_ny\"))
    L2KOLL_ny = Cstr(Request(\"L2KOLL_ny\"))
    L2KOLLFORK_ny = Cstr(Request(\"L2KOLLFORK_ny\"))
    antalposter = int(request(\"antalposter\"))
   
    replaceInForm L1KOLL_ny, \"\", NULL
    replaceInForm L2KOLLFORK_ny, \"\", NULL
   
    \'indsætter i databasen
    application.lock
   
   
    if not L2KOLL_ny = \"\" then
        arrayFields = Array(\"lemmaid\", \"L1KOLL\", \"L2KOLL\", \"L2KOLLFORK\")   
        arrayVariables = Array(lemmaid, L1KOLL_ny, L2KOLL_ny, L2KOLLFORK_ny)
        \'dbInsertAndGetLastestID arrayFields, arrayVariables, \"kollokation\", \"KollID\"
   
        dbInsert arrayFields, arrayVariables, \"kollokation\"
    end if
   

    \'opdaterer kollokationer
    for i = 1 to int(antalposter)

        KollID = Cstr(Request(\"KollID_\"&i))
        L1KOLL = Cstr(Request(\"L1KOLL_\"&i))
        L2KOLL = Cstr(Request(\"L2KOLL_\"&i))
        L2KOLLFORK = Cstr(Request(\"L2KOLLFORK_\"&i))

        replaceInForm L1KOLL, \"\", NULL
        replaceInForm L2KOLL, \"\", NULL
        replaceInForm L2KOLLFORK, \"\", NULL

        Set rsTmp = server.CreateObject(\"ADODB.recordset\")
        SQL = \"SELECT * FROM Kollokation WHERE KollID = \" & int(KollID) & \";\"

        rsTmp.Open SQL, dataconn, adOpenKeyset, adLockBatchOptimistic

        rsTmp(\"L1KOLL\").value = L1KOLL
        rsTmp(\"L2KOLL\").value = L2KOLL
        rsTmp(\"L2KOLLFORK\").value = L2KOLLFORK
       
        rsTmp.UpdateBatch
        rsTmp.close
        SET rsTmp = NOTHING
    next

    \'opdaterer i backendLemmaLog tabellen
    arrayFields = Array(\"backendBrugerID\", \"LemmaID\", \"backendLemmaLogAendring\")   
    arrayVariables = Array(session(\"intBackendBrugerID\"), lemmaid, \"kollokation\")
    dbInsert arrayFields, arrayVariables, \"backendLemmaLog\"
   
    application.unlock
   
    \'går tilbage til oversigt
    response.redirect strFilnavn & \"&call=rediger&refresh=true&id=\" & lemmaid
end if
\'slut på redigering (udførelse)


if strCall = \"fjern\" then
    lemmaid = int(Request(\"lemmaid\"))
    kollid = int(Request(\"kollid\"))
    \'idtype = cstr(Request(\"idtype\"))
   
    \'sletter i databasen
    application.lock
   
    \'if idtype=\"kollokation\" then
        \'dbDelete_single_criteria_intid \"Kollokation\", \"KollID\", kollid
        SQL = \"DELETE FROM Kollokation WHERE KollID = \" & kollid & \";\"
        SET oRs = dataconn.Execute(SQL)
    \'end if
   
    \'if idtype=\"lemma\" then
        \'dbDelete_single_criteria_intid \"Kollokation\", \"KollID\", kollid
        \'SQL = \"DELETE FROM Kollokation WHERE LemmaID = \" & lemmaid & \";\" 
        \'SET oRs = dataconn.Execute(SQL)
    \'end if

    \'opdaterer i backendLemmaLog tabellen
    \'arrayFields = Array(\"backendBrugerID\", \"LemmaID\", \"backendLemmaLogAendring\")   
    \'arrayVariables = Array(session(\"intBackendBrugerID\"), lemmaid,\"idtype\")
    \'dbInsert arrayFields, arrayVariables, \"backendLemmaLog\"

    application.unlock
   
    \'går tilbage til oversigt
    response.redirect strFilnavn & \"&refresh=true&call=rediger&id=\" & lemmaid
end if

\'if request(\"refresh\") = \"true\" then response.redirect strFilnavn & \"&call=rediger&id=\" & request(\"id\")

%>



<!--#include file=\"inc/slut_standardside_01_inc.asp\"-->
Avatar billede kate Nybegynder
08. november 2000 - 14:52 #5
hovsa - sletmarkerede functionen var ikke så pæn men den jeg skrev oprindelig gælder
Avatar billede kasseper Nybegynder
08. november 2000 - 14:57 #6
Har du tjekket op på at du ikke kan kalde en gruppe af checkboxe for det samme navn...Det er et selvstændigt navn for hver checkbox. Ellers kan du jo ikke vurdere hvilken en checkbox der er markeret.....

Kasseper
Avatar billede kate Nybegynder
08. november 2000 - 15:01 #7
jeps - det er der ikke. De går igennem en løkke med \'i\' (noget database-hent) og hedder checkbox_i
kasper?
Avatar billede kasseper Nybegynder
08. november 2000 - 15:04 #8
Ahhh, du gættede det, folk tror jeg hedder Per eller Kasse, ( \'I shit you not !\' ).
Jeg må lige stene lidt over koden igen, vender tilbage senere, så må vi håbe jeg er hurtig nok, erikjacobsen plejer at være helt vild i varmen med den slags spg...;-)
Avatar billede kate Nybegynder
08. november 2000 - 15:12 #9
kasper

Det er lige før jeg giver op og forsøger at finde en helt anden løsning - hvordan sletter jeg det her (spørgsmål-svar-kommentar)
Avatar billede kasseper Nybegynder
08. november 2000 - 15:14 #10
laver dit eget spg. og acceptere det, Øv det var da ellers en meget sej kode du havde.....
Nåh,  your choise:::::::
Avatar billede kasseper Nybegynder
08. november 2000 - 15:14 #11
spg. >> svar...
selvfølgelig.
Avatar billede kate Nybegynder
10. november 2000 - 08:35 #12
ikke relevant længere
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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