Avatar billede terkel100 Nybegynder
17. november 2005 - 10:51 Der er 4 kommentarer

Sortering af records og sletning af enslydende records

Hej Eksperter

Håber dette er den rigtige kategori - er ny på eksperten.

Jeg har brug for et script, som kan sortere records og slette evt. enslydende records. Det skal foregå når html-siden genereres.
Records er navne og adresser hentet fra et erp-system (se nedenstående html-koder.
Info:  "/(oadr1)" = vejnavn og husnr., som jeg tænkte var god til at benytte som parameter.
Håber I kan hjælpe.

----------------

<script language="JavaScript"><!--

function selAdr(f) {

    if (window.opener.document.forms[0].ONAVN1 != null)
        window.opener.document.forms[0].ONAVN1.value = f.ONAVN1.value;
    if (window.opener.document.forms[0].OONAVN2 != null)
        window.opener.document.forms[0].OONAVN2.value = f.ONAVN2.value;
    if (window.opener.document.forms[0].OADR1 != null)
        window.opener.document.forms[0].OADR1.value = f.OADR1.value;
    if (window.opener.document.forms[0].OHUSNR != null)
        window.opener.document.forms[0].OHUSNR.value = f.OHUSNR.value;
    if (window.opener.document.forms[0].OETAGE != null)
        window.opener.document.forms[0].OETAGE.value = f.OETAGE.value;
    if (window.opener.document.forms[0].OADR2 != null)
        window.opener.document.forms[0].OADR2.value = f.OADR2.value;
    if (window.opener.document.forms[0].OPNR != null)
        window.opener.document.forms[0].OPNR.value = f.OPNR.value;
    if (window.opener.document.forms[0].OPDI != null)
        window.opener.document.forms[0].OPDI.value = f.OPDI.value;
    if (window.opener.document.forms[0].AUTNR != null)
        window.opener.document.forms[0].AUTNR.value = f.AUTNR.value;
    if (window.opener.document.forms[0].O1KOMK != null)
        window.opener.document.forms[0].O1KOMK.value = f.O1KOMK.value;
    window.close();
    return false;
}

// -->
</script>

<BODY>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<script language="JavaScript" src="/dk-dk/JavaScript/overlib.js"></script>

<div id='rykind'>

<P><INPUT TYPE="BUTTON" CLASS='lhnButton1' VALUE="Tilbage/luk" onClick="window.close()"></P>

<TABLE BORDER=1 class='tablecell6'>
    <TR>
        <TH ALIGN=CENTER></TH>
        <TH ALIGN=CENTER></TH>
    </TR>

<!--/(Grid)-->
    <TR>
        <FORM  CLASS='lhnButton1' onSubmit="return selAdr(this);">
            <TD ALIGN=LEFT VALIGN=TOP><INPUT TYPE="SUBMIT" CLASS='lhnButton1' NAME="Select" VALUE="Brug adresse">
            </TD>
            <TD WIDTH="300">/(ONAVN1)<INPUT TYPE="HIDDEN" NAME="ONAVN1" VALUE="/(ONAVN1)">
                <script language="JavaScript"><!--
                if ("/(ONAVN2)" != "") document.write("<BR>/(ONAVN2)");
                // --></script>
                <INPUT TYPE="HIDDEN" NAME="ONAVN2" VALUE="/(ONAVN2)">
                <BR>/(OADR1)&nbsp;/(OHUSNR)&nbsp;/(OETAGE)
                <INPUT TYPE="HIDDEN" NAME="OADR1" VALUE="/(OADR1)">
                <INPUT TYPE="HIDDEN" NAME="OHUSNR" VALUE="/(OHUSNR)">
                <INPUT TYPE="HIDDEN" NAME="OETAGE" VALUE="/(OETAGE)">
                <script language="JavaScript"><!--
                if ("/(OADR2)" != "") document.write("<BR>/(OADR2)");
                // --></script>
                <INPUT TYPE="HIDDEN" NAME="OADR2" VALUE="/(OADR2)">
                <BR>/(OPNR)&nbsp;/(OPDI)
                <INPUT TYPE="HIDDEN" NAME="OPNR" VALUE="/(OPNR)">
                <INPUT TYPE="HIDDEN" NAME="OPDI" VALUE="/(OPDI)">
                <script language="JavaScript"><!--
                if ("/(AUTNR)" != "") document.write("<BR>/(AUTNR)");
                // --></script>
                <INPUT TYPE="HIDDEN" NAME="AUTNR" VALUE="/(AUTNR)">
                <INPUT TYPE="HIDDEN" NAME="O1KOMK" VALUE="/(O1KOMK)">
            </TD>
        </FORM>
    </TR>
<!--/(Grid)-->
</TABLE>
/(BEGNEXT)

<FORM ACTION="/cgi-bin/dk-dk/R88W000.EXE" NAME="R88W734N" METHOD="POST" AUTOCOMPLETE="OFF">
<INPUT TYPE="HIDDEN" NAME="WSYD_SIGN" VALUE="/(WSYD_SIGN)/(R88W734N)">
<INPUT TYPE="HIDDEN" NAME="WSYD_EVENT" VALUE="R88W734N">
<INPUT TYPE="HIDDEN" NAME="WSYD_SID" VALUE="/(WSYD_SID)">
<INPUT TYPE="HIDDEN" NAME="T01SRV" VALUE="/(T01SRV)">
<INPUT TYPE="HIDDEN" NAME="K03USN" VALUE="/(K03USN)">
<INPUT TYPE="HIDDEN" NAME="K01OPR" VALUE="/(K01OPR)">
<INPUT TYPE="HIDDEN" NAME="K01KTO" VALUE="/(K01KTO)">
<INPUT TYPE="HIDDEN" NAME="WKAB" VALUE="/(WKAB)">
<INPUT TYPE="HIDDEN" NAME="OSTATU" VALUE="/(OSTATU)">
<INPUT TYPE="HIDDEN" NAME="OOPDA" VALUE="/(OOPDA)">
<INPUT TYPE="HIDDEN" NAME="OORDNR" VALUE="/(OORDNR)">
<P><INPUT TYPE="SUBMIT" class="lhnButton1" NAME="R88W734N" VALUE="Se flere adresser brugt" ></P>
</FORM>
/(ENDNEXT)
<P><INPUT TYPE="BUTTON" CLASS='lhnButton1' VALUE="Tilbage/luk" onClick="window.close()"></P>
</div>
</BODY>
</HTML>
Avatar billede roenving Novice
17. november 2005 - 11:06 #1
Hvad bruger du serverside til at generere siden, for sandsynligvis skal du ikke bruge javascript, hvis det skal foregå mens siden genereres ...

-- og så bruger du ulovlig nesting, da et form-tag ikke må placeres på den viste måde, men enten skal placeres udenom tabellen eller også skal placeres inde i en celle !-)

-- og dit script bliver lige et par hundrede anslag kortere, hvis du starter med at definere formen i opener-vinduet:

function selAdr(f) {
    var oForm = window.opener.document.forms[0];
    if (oForm.ONAVN1 != null)
        oForm.ONAVN1.value = f.ONAVN1.value;
...

Hvis det skal laves i javascript på klienten, skal det laves efter at dokumentet er fuldt loadet, så jeg vil næsten tro, at det ville være bedre at oprette en javascript-database (array-variabel) og så først sortere den, slette gengangere og så udskrive via DOM !o]
Avatar billede terkel100 Nybegynder
17. november 2005 - 14:19 #2
Jeg har intet med selve serversiden at gøre. Kongen over serveren er væk et stykke tid, derfor mit lidt mærkelige svar.
Jeg er selvlært i html og lidt javascript ud fra nogle allerede eksisterende sider.
På det seneste har jeg dog været nødt til at lave mere og mere javascript selv, men har ikke kunnet finde en løsning på dette problem endnu.

Du skriver at det ville være bedre med en javascript-database. og udskrive via DOM.
Er det en "side" som opbygger databasen, sorterer og sletter gengangere. Derefter kalder den eksisterende siden med  databasen via DOM  - eller eksekveres det hele på samme side ?

Beklager de tåbelige spørgsmål, men på trods af tykke bøger ved siden af, mangler jeg helt sammenhængen.

Nedenfor headeren fra siden. Håber det giver svaret på server-spørgsmålet.

--------------------------------------------

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META name="Generator" content="Websydian v3.0">
<link rel="stylesheet" type="text/css" href="/dk-dk/cou_ie_stylesheet.css">

<TITLE>R88W734P</TITLE>
</HEAD>

------------------------

P.S.:
Tak for info vedr. form-tag - er allerede rettet.
- og forenkling af script. Er ret genialt i mange sammenhænge.
Avatar billede roenving Novice
22. november 2005 - 02:19 #3
Hrm, det er jo faksiskt lige en lidt større opgave at gå igang med, som jeg desværre ikke orker lige nu !-)

-- og Websydian har jeg aldrig hørt om ...

-- men princippet er, at man opbygger en javascript database med et array af arrays (altså poster med felter !-), benytter sig af den indbyggede Array.sort-metode, gennemkigger alle poster, fjerner gengangere og derefter konverterer det resterende til grupper af html-elementer !o]

-- en hel masse benarbejde (og en del indsigt, men stort set ikke genialt !-)
Avatar billede terkel100 Nybegynder
05. december 2005 - 09:45 #4
Tak for dit svar.
Jeg har - kun kortvarigt indtil videre - kigget lidt på det.
Det er et stort benarbejde kan jeg se.

Jeg lukker spørgsmålet.
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