Avatar billede peterpedersen Nybegynder
23. september 2007 - 18:32 Der er 56 kommentarer og
1 løsning

Den bedste løsning for en liste der opdateres

Hej alle sammen.

Jeg er ved at lave en liste over nogle server som skal sættes ind og fjernes efter som status er ledig eller ikke ledig.

Men jeg ville høre hvilken måde, med javascript er smartest at opdatere en liste. Altså den eneste løsning jeg kan se for mig, er en div som indeholder en liste over serverne, og så hver gang der sker en ændring ( en ajax-del som jeg har lavet ) går den ind og opdatere hele listen. Men findes der ikke måde så jeg bare kan sætte en ny server ind på listen, og fjerne en server fra listen ? For der er altså omkring 5000 server ;) så det er noget trafik ;) Og hvis den skal opdatere listen hvert tiende sekundt, så går det ikke lige hvis der sidder 500 forskellige mennesker og kigger på listen. Så tror jeg altså ikke min forbindelse kan følge med længere.

Men ville være dejligt hvis jeg kunne få nogle forskellige muligheder, så jeg sætter 200 point på højkant til den smarteste løsning (y)
Avatar billede thesurfer Nybegynder
23. september 2007 - 21:02 #1
Du har ikke skrevet hvordan outputtet fra AJAX delen ser ud..

Hvis du har et bestemt antal servere, kunne du f.eks oprette samme antal divs, og tilgå de relevante divs direkte via document.getElementById("server1234"). Så sætter du dens værdi til f.eks. "Offline" eller "Online".

Der skal overføres meget hver gang siden indlæses, men du skulle kunne spare noget hvis man ikke reloader siden, da du jo bruger AJAX.

Alternativ kan man have en select, som du tilføjer/fjerner options til/fra. Det vil nok kræve noget processorkraft på klient, hvis serverene skal sorteres alfabetisk, og man f.eks. indsætter en server der starter med "a", da man så skal flytte omkring 4999 servere længere ned..
Avatar billede peterpedersen Nybegynder
23. september 2007 - 21:56 #2
Jeg kan bare ændre mit output som jeg vil ;) Så det rettes bare efter løsningen ;)

Men jeg har ikke et fast antal ;) Og den kan nemt snige sig op over 5000 så.. Har ikke noget fast antal ;)

Ligesom en brugerliste i en chat ud i højre side normalt. Hvordan tilføjer de normalt og fjerner bruger fra den liste. Hvilken løsning er nemmest ?
Avatar billede olebole Juniormester
23. september 2007 - 21:59 #3
<ole>

Læg serverne i en DB-tabel med et felt til et timestamp. Hvergang en servers status opdateres sættes timestamp'et samtidig.

Når brugeren requester siden første gang, downloades data om serverne sammen med et timestamp.
Derefter kan han f.eks. spørge serveren, om der er nyt, hvert halve minut. Det gøres ved at sende tiden for seneste request med den nye request - og på serveren hente data fra tabellen, der er opdateret senere end dette stamp.

/mvh
</bole>
Avatar billede thesurfer Nybegynder
23. september 2007 - 22:28 #4
olebole> Genialt.. .-)
Avatar billede peterpedersen Nybegynder
24. september 2007 - 14:56 #5
Olebole > Det er sådan jeg henter mine data ;)

men jeg ville gerne vide hvordan jeg opdatere min liste, hvordan kan jeg fjerne Server 5 ud fra denne liste

Server 1
Server 2
Server 3
Server 4
Server 5 > Er opdaget, skal fjernes
Server 6
Server 7 osv.

Hvordan laver jeg den liste ? Og jeg så kan fjerne server 5 fra den > Det er selve javascripten jeg spørger om. Ikke ajax delen. Håber i forstår lidt bedre nu.

Som jeg kun kan se det er det at opdater hele den div jeg listen stående i. Men hvis der er 5000 server, så bliver der dælme brugt trafik hvis jeg skal sende hele listen fra min php dokument med ajax og opdatere listen.
Avatar billede thesurfer Nybegynder
24. september 2007 - 17:09 #6
peterpedersen> Hvordan vil du vise listen? Skal det bare kører ned ad, så det bliver en lang side? Er der nogen form for opdeling? Er der nogen form for sortering, eller er det lige meget?
Avatar billede peterpedersen Nybegynder
24. september 2007 - 17:16 #7
den skal liste lodret, og jeg skal kun have et navn, og ingen sotering. Altså jeg ikke helt dum til det med javascript, så tror bare det er det. Og så må jeg jo prøve mig frem hvis jeg får lyst til at lave det på en anden måde
Avatar billede thesurfer Nybegynder
24. september 2007 - 17:25 #8
Jeg prøver på at finde ud af, om du kan bruge en form med en select.
Man kan nemlig tilføje og fjerne options i en select.

Skal man kunne markere navnet og kopiere det, eller er det kun til visning?
Det ville hjælpe hvis man faktisk vidste hvad det skulle bruges til.. :-)
Avatar billede peterpedersen Nybegynder
24. september 2007 - 17:31 #9
jeg vil nu have en liste i stedet for en select. Jeg skal lave listen sådan her

Server1 (1/3) <b>Join</b> - Add to favorit - Report
Server2 (2/6) <b>Join</b> - Add to favorit - Report
Server3 (6/7) <b>Join</b> - Add to favorit - Report
Server4 (2/3) <b>Join</b> - Add to favorit - Report
Server5 (4/5) <b>Join</b> - Add to favorit - Report
Server6 (1/10) <b>Join</b> - Add to favorit - Report

osv.
Avatar billede peterpedersen Nybegynder
24. september 2007 - 17:32 #10
En liste over en masse server til alle mulige spil ;)
Avatar billede peterpedersen Nybegynder
24. september 2007 - 17:32 #11
fx.

Counter Strike
Counter Strike Source
Battlefield 2
Call Of Duty 2
Avatar billede w13 Novice
24. september 2007 - 17:35 #12
Hmmm.. Hvis du nu genererer det sådan her:
------------------------------------------
<span id="server1">Server1 (1/3) <b>Join</b> - Add to favorit - Report</span>
<span id="server2">Server2 (2/6) <b>Join</b> - Add to favorit - Report</span>
<span id="server3">Server3 (6/7) <b>Join</b> - Add to favorit - Report</span>
<span id="server4">Server4 (2/3) <b>Join</b> - Add to favorit - Report</span>
<span id="server5">Server5 (4/5) <b>Join</b> - Add to favorit - Report</span>
<span id="server6">Server6 (1/10) <b>Join</b> - Add to favorit - Report</span>
------------------------------------------
Så kan du jo fjerne en af serverne med en removeChild.
Avatar billede peterpedersen Nybegynder
24. september 2007 - 18:08 #13
Joe, det ser jo rigtig nok ud. Men er ikke helt sikker på hvordan det gøres. Så kunne du ikke prøve og lave en addServer() og removeServer() functions, og så et html dokument ?

addServer kan jeg selv rette til ;) hvis jeg ikke helt tilfreds, men er sku ikke helt sikker på det der removeChild ;)
Avatar billede thesurfer Nybegynder
24. september 2007 - 18:35 #14
Jeg går ud fra, at "Server#" i f.eks. "Server1 (...)", "Server2 (...)" skal erstattes med navnet på servere? Dvs, der skal egentligt ikke stå et tal, efter ordet "server"?
Avatar billede w13 Novice
24. september 2007 - 18:41 #15
Dette skulle gerne kunne fjerne en af serverne. Den skal så kaldes med f.eks. removeServer("server2")
---------------------------------
<script type="text/JavaScript">
function removeServer(id){
document.getElementById("servers").removeChild(document.getElementById(id));
}
</script>

<div id="servers">
<span id="server1">Server1 (1/3) <b>Join</b> - Add to favorit - Report</span>
<span id="server2">Server2 (2/6) <b>Join</b> - Add to favorit - Report</span>
<span id="server3">Server3 (6/7) <b>Join</b> - Add to favorit - Report</span>
<span id="server4">Server4 (2/3) <b>Join</b> - Add to favorit - Report</span>
<span id="server5">Server5 (4/5) <b>Join</b> - Add to favorit - Report</span>
<span id="server6">Server6 (1/10) <b>Join</b> - Add to favorit - Report</span>
</div>
---------------------------------
Mht. at add'e servere, kommer det lidt an på, hvordan du vil fortælle den, hvor serveren skal placeres på listen. Som thesurfer spørger, hedder serverne så Server# eller kan de hedde hvadsomhelst? Dvs. skal de sorteres efter tal eller alfabetisk?
Avatar billede w13 Novice
24. september 2007 - 18:41 #16
Eller er rækkefølgen ligemeget eller hvordan?
Avatar billede thesurfer Nybegynder
24. september 2007 - 18:42 #17
w13> 24/09-2007 17:16:55 :-)
Avatar billede thesurfer Nybegynder
24. september 2007 - 18:45 #18
Jeg går ud fra, at følgende er links:

Join
Add to favorit
Report

Hvordan ser href ud på dem?
Avatar billede w13 Novice
24. september 2007 - 18:50 #19
Jeg tror umiddelbart, at add-funktionen kunne være lidt à la følgende:
------------------------------------------------
function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("TEKST HER"));
document.getElementById("servers").appendChild(newElement);
}
------------------------------------------------
Det er dog ligeså utestet som removeServer, og jeg er lidt i tvivl med det der CreateTextNode.

addServer indsætter i øvrigt bare som det nederste element på listen.
Avatar billede w13 Novice
24. september 2007 - 18:51 #20
Jamen, så kan min addServer-funktion vel bruges. :) Ja, vi mangler lige dine href's, da alt skal indsættes med DOM.
Avatar billede peterpedersen Nybegynder
24. september 2007 - 18:53 #21
Hmm

bare lav et <a></a> om Join , add to favorit og report.
det kan jeg godt selv udfylde. For det er nu javascript som skal indsættes ;)
Avatar billede thesurfer Nybegynder
24. september 2007 - 18:57 #22
Jeg bliver nødt til at smutte.. jeg er sikker på at w13 har styr på det..
Ellers må en af de andre hjælpe til.. jeg ved godt at de lurer i mørket.. :-)
Avatar billede peterpedersen Nybegynder
24. september 2007 - 18:59 #23
Okay thesurfer, det lyder også som han har styr på det ;)

og jeg kan heller ikke rigtig forstå at det kun er jer to der er kommet med nogle brugbare svar ;)

W13 > jeg tester det lige engang ;)
Avatar billede w13 Novice
24. september 2007 - 19:01 #24
Jo, men kan du finde ud af DOM? For det skal indsættes lidt specielt.

function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("SERVERNAVN HER"));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById("servers").appendChild(newElement);
}
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:02 #25
DOM har jeg ingen forstand på ;)
Avatar billede w13 Novice
24. september 2007 - 19:02 #26
Hov, der manglede to linjer:

function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("SERVERNAVN HER"));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById("servers").appendChild(newElement);
}
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:04 #27
prøvde med

<html>

<head>
<script language="JavaScript">

function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("SERVERNAVN HER"));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById("servers").appendChild(newElement);
}

addServer('1');
</script>
<title>Ny side 13</title>
</head>

<body>
<div id="servers">
</div>
</body>

</html>

Men med en fejl ;(
Avatar billede w13 Novice
24. september 2007 - 19:06 #28
Ok. Det fungerer sådan her:

Jeg har et div-element med id="test". Nu vil jeg så tilføje et billede til div'en:

newElement=document.createElement("img") //laver et img-tag i variablen newElement, det er altså ikke blevet indsat endnu
newElement.setAttribute("src","http://www.gul.dk/båd.gif"); //sætter attributten src til en billedadresse
document.getElementById("test").appendChild(newElement); //indsætter newElement (altså billedet) som de sidste tag i div'en "test"

..hvis det er til at få mening ud af. =)
Avatar billede w13 Novice
24. september 2007 - 19:06 #29
Hvilken fejl?
Avatar billede w13 Novice
24. september 2007 - 19:07 #30
Husk også altid at bruge:
<script type="text/javascript">
i stedet for:
<script language="JavaScript">

Det sidste er nemlig ikke gyldigt, selvom IE stadig tolker det korrekt.
Avatar billede w13 Novice
24. september 2007 - 19:09 #31
Nå ja, jeg har måske fundet fejlen. Du kan ikke kalde addServer("1") før div'en eksisterer. Når addServer køres i head, er div'en ikke blevet lavet endnu. Fjern addServer('1');
og skriv den i stedet ind i en onload i body:

<body onload="addServer('1')">
Avatar billede w13 Novice
24. september 2007 - 19:12 #32
addServer-løsningen kunne også lavet med innerHTML meget kortere, men det er hamrende invalidt. =)
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:13 #33
Sad lige og kiggede den kode igennem, og når du så forklar mig det, så forstår jeg det faktisk godt (: Tusind tak skal du ha for det !

Jeg rettede det til

men får fejlen -

Linje: 23
Tegn: 1
Fejl: 'document.getElementById(...)' er null eller ikke et objekt

OG Koden ser lige nu således ud -

<html>

<head>
<script type="text/javascript">

function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("SERVERNAVN HER"));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById('Servers').appendChild(newElement);
}

addServer('1');
</script>
<title>Ny side 13</title>
</head>

<body>
<div id="Servers">
</div>
</body>

</html>
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:16 #34
Hov, der var jeg lidt langsom -
men nu virker det dælme (: kanon!

men jeg får inget linjeskift, prøvede med en <br> men det virker ikke.

hvad skal jeg gøre her ?
Avatar billede w13 Novice
24. september 2007 - 19:19 #35
Nå ja. Jamen så skal du bare ha' linjen:
document.getELementById("Servers").appendChild(createElement("br"));
med, sådan her:
---------------------------------------------------
function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("SERVERNAVN HER"));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById('Servers').appendChild(newElement);
document.getELementById("Servers").appendChild(createElement("br"));
}
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:20 #36
og kunne du måske have en ide om hvordan jeg skal add mine output fra ajax

jeg kan ændre det som jeg har lyst, men hvordan skal jeg add mine server ?
lige nu giver mit php dokument et output på alle de server der er blevet ændret på, og skal enden fjernes eller tilføjes.
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:22 #37
og får en fejl ved at indsætte

document.getELementById("Servers").appendChild(createElement("br"));
Avatar billede w13 Novice
24. september 2007 - 19:25 #38
Ja, det er fordi jeg kom til at skrive getELement og det skal være getElement
Javascript er casesensitive
Avatar billede w13 Novice
24. september 2007 - 19:27 #39
Hmmm. Hvis du genererer listen med php: server1,server2,server3
så kan det vel smides i et array, som adskilles ved komma, og så kan du løbe det igennem og køre funktionen for hvert element i array'et.
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:36 #40
Ja, det var også sådan jeg ville gøre. Jeg kan sagtens gøre det i php, men ikke i javascript. Så kunne du lave noget ? Det er vel noget explode() det er det ihvertfald i php :b

men jeg får stadig en fejl ved

document.getElementById('Servers').appendChild(createElement("br"));
Avatar billede peterpedersen Nybegynder
24. september 2007 - 19:41 #41
fiksede selv det med fejlen

du havde lige glemt document.createElement ;) -

document.getElementById('Servers').appendChild(document.createElement("br"));
Avatar billede w13 Novice
24. september 2007 - 19:56 #42
Jeg tror, det må være:
-----------------------------------
liste="server1,server2,server3";
liste.split(".");
for(i=0;i<liste.length;i++){
addServer(liste[i])
}
Avatar billede w13 Novice
24. september 2007 - 19:57 #43
Muligvis kan det gøres kortere:
--------------------------------
liste="server1,server2,server3".split(".");
for(i=0;i<liste.length;i++){addServer(liste[i])}
Avatar billede peterpedersen Nybegynder
24. september 2007 - 20:13 #44
Det virker ikke.

får en masse spans der ser således ud -

SERVER undefined - Join - Add to favorit - Report
SERVER undefined - Join - Add to favorit - Report
SERVER undefined - Join - Add to favorit - Report
SERVER undefined - Join - Add to favorit - Report
Avatar billede peterpedersen Nybegynder
24. september 2007 - 20:51 #45
Min dokument ser sådan her ud, og jeg får stadig en fejl ;)

<html>

<head>
<script type="text/javascript">

function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("SERVERNAVN HER"));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById('Servers').appendChild(newElement);
document.getELementById('Servers').appendChild(document.createElement("br"));
}

function removeServer(id){
document.getElementById('Servers').removeChild(document.getElementById(id));
}

function RollSplit() {
liste="server1,server2,server3";
liste.split(".");
for(i=0;i<liste.length;i++){
addServer(liste[i])
}
}

</script>
</head>

<body onLoad="addServer(1); RollSplit();">
<div id="Servers">
</div>
</body>

</html>
Avatar billede w13 Novice
24. september 2007 - 20:55 #46
Nå ja, jeg splitter med punktum, men der er ikke punktummer i listen.

liste="server1,server2,server3".split(",");
Avatar billede peterpedersen Nybegynder
24. september 2007 - 21:07 #47
function addServer(id){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode("SERVER" + id));
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById("Servers").appendChild(newElement);
document.getElementById("Servers").appendChild(document.createElement("br"));
}
function removeServer(id){
document.getElementById('Servers').removeChild(document.getElementById(id));
}

function RollSplit() {
liste="server1,server2,server3".split(",");
for(i=0;i<liste.length;i++){
    addServer(liste[i]);
}
}

Så pokker! Så tror jeg at vi er nået til enden af dette spørgsmål !

Jeg må nok sige at w13 var den der hjalp mest, og derfor får de 200 point.
thesurfer > skriv lige til mig hvis du er utilfreds ;)

w13 læg et svar ;)
Avatar billede w13 Novice
24. september 2007 - 21:15 #48
Svar kommer her! :)
Avatar billede peterpedersen Nybegynder
24. september 2007 - 21:17 #49
og til dem der kigger i tråden for at få hjælp og heller ikke syntes det smart at lave link med det id men inputer i addServer(); (lavet for jeg selv tit mangler sådan noget hjælp her)

function addServer(id, outputId){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode(id));
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.setAttribute("href","http://google.dk?test=" + sqlId);
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.setAttribute("href","http://google.dk?test=" + sqlId);
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.setAttribute("href","http://google.dk?test=" + sqlId);
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
document.getElementById("Servers").appendChild(newElement);
document.getElementById("Servers").appendChild(document.createElement("br"));
}

function removeServer(id){
document.getElementById('Servers').removeChild(document.getElementById(id));
}

function RollSplit() {
liste="server1*1,server2*2,server3*3".split(",");
for(i=0;i<liste.length;i++){
    addServer(liste[i].split("*")[0], liste[i].split("*")[1]);
}
}

Så skal der bare blokkes for at oprette servernavne med tegnet * i navnet.
Avatar billede peterpedersen Nybegynder
24. september 2007 - 21:25 #50
Hov der skal lige rettes

function addServer(id, outputId){

til

function addServer(id, sqlId){
Avatar billede peterpedersen Nybegynder
24. september 2007 - 21:32 #51
Hov w13, jeg håber du kan hjælpe igen!
For det ser sku ikke så godt ud med removeServer()

http://ngw.dk/test.php

Der kommer et dumt mellemrum.

som du kan se i kildkoden så køre jeg min RollSplit, med variablen liste sat til
="add*server1*1,add*server2*2,remove*server2*3,add*server4*4,add*server5*5"

når jeg remover kommer der en mellemrum som helst ikke sku ha været der. Kan du hjælpe ?
Avatar billede peterpedersen Nybegynder
24. september 2007 - 21:39 #52
Nå, det fandt jeg også ud af. Det var jo logisk, for den <br> der indsættes bagefter span bliver jo ikke fjernet, så vi må indsætte den i span'en ;) og så ryger den væk ;)
Avatar billede w13 Novice
24. september 2007 - 21:55 #53
Så lægger vi bare <br> ind i span.

function addServer(id, outputId){
var newElement=document.createElement("span");
newElement.setAttribute("id",id);
newElement.appendChild(document.createTextNode(id));
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.setAttribute("href","http://google.dk?test=" + sqlId);
newElementLink.appendChild(document.createTextNode("Join"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.setAttribute("href","http://google.dk?test=" + sqlId);
newElementLink.appendChild(document.createTextNode("Add to favorit"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createTextNode(" - "));
newElementLink=document.createElement("a");
newElementLink.setAttribute("href","http://google.dk?test=" + sqlId);
newElementLink.appendChild(document.createTextNode("Report"));
newElement.appendChild(newElementLink);
newElement.appendChild(document.createElement("br"));
document.getElementById("Servers").appendChild(newElement);
}
Avatar billede w13 Novice
24. september 2007 - 21:57 #54
Jup! :)
Avatar billede olebole Juniormester
24. september 2007 - 23:11 #55
Er det ikke meget lettere at lave en færdig element-template og fjerne den fra dokumentet på window.onload? Så kan man efterfølgende klone den - fylde data i - og indsætte klonen i dokumentet, hvergang der skal bruges et nyt span  :)
Avatar billede w13 Novice
25. september 2007 - 02:19 #56
Nej :)
Avatar billede olebole Juniormester
25. september 2007 - 02:34 #57
- så er der vist noget, jeg ikke forstår  ;o)
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