Avatar billede Rasmusjc Juniormester
29. september 2003 - 23:27 Der er 17 kommentarer og
1 løsning

navneliste ved brug af pop-up

Hej.

Sagen er den at jeg skal have lavet en navneliste på en hjemmeside. Altså hvor er kommer en lang liste af navne omkring 200 i alfabetisk rækkefølge.

Det er så meningen af man skulle klikke på hvert navn om så skal der komme et pop-up vindue frem med et billede af personen og nogle facts f.eks fødselsdato tlf osv.

Kan bare ikke finde ud af at få det lavet korretk.

Er der nogen der evt. har en løsning, et sted jeg kan søge og efter hvad.??

Hilsen Rasmus Christensen
Avatar billede skovenborg Nybegynder
29. september 2003 - 23:40 #1
hvor har du alle dataerne henne - i et array eller i database?
Avatar billede roenving Novice
30. september 2003 - 08:06 #2
Det vil klart være at foretrække, at du opretter et array fra din database, da data så kan bruges til hvad som helst og folk ikke først skal en tur om en database på serveren ...

f.eks.

<script type="text/javascript">
var data = new Array();

data[0] = new Array();
data[0].navn = "Rasmus Christensen";
data[0].tlf = "22 22 22 22";
...

function visData(idx){
txt = "Navn: \t" + data[idx].navn + "\n";
txt += "Telefon: \t" + data[idx].tlf;
alert(txt);
}
</script>

<a href="#" onclick="visData(0)" style="text-decoration:none;color:black">Rasmus Christensen</a>
Avatar billede Rasmusjc Juniormester
30. september 2003 - 12:17 #3
Hvad er det lige et array er og det er jo sådan at jeg bare har lagt alle billederne ind i forskellige mapper alt efter hvilken katagori de tilhører. Og så har jeg opdelt det sådan at man kan klikke på de forskellige f.eks herre og så var det meningen af der skulle komme en liste med Herre startende ved A. osv.
Men hvad er det der Array?? og hvor skal linket til billederne være??

Hilsen Rasmus
Avatar billede skovenborg Nybegynder
30. september 2003 - 16:53 #4
Et array er (pædagogisk sagt) en variabel som kan indeholde mere end en værdi.
Du kan sammenligne den med et slags kartotek (array) med dokumenter (værdier), hvor hvert dokument har deres sted (index).

Det skrives ligesom en variabel plus []:
arr = new Array();
arr[0] = "Første værdi";
arr[1] = "Anden værdi";
osv.
Derefter hentes de ved at skrive arr[0], ligesom normalle variabler.
Avatar billede skovenborg Nybegynder
30. september 2003 - 16:59 #5
Du kan udvide roenvings script lidt til fx at lave en popup med billede:
var data = new Array();

data[0] = new Array();
data[0].navn = "Rasmus Christensen";
data[0].tlf = "22 22 22 22";
data[0].billede = "logo.png";

function visData(idx){
txt = "<img src='"+data[idx].billede+"'/><br />";
txt += "Navn: " + data[idx].navn + "<br />";
txt += "Telefon: " + data[idx].tlf;
vindue = window.open('','Oplysninger','toolbar=no,statusbar=no,width=300,height=300');
vindue.document.write(txt);
}
Avatar billede Rasmusjc Juniormester
30. september 2003 - 21:55 #6
Kan godt se at det fungere.

Men jeg er stadigvæk ikke helt med på den.

Lad os sige at det her er starten, altså den første person på listen.

<script type="text/javascript">
var data = new Array();

data[0] = new Array();
data[0].navn = "Rasmus Christensen";
data[0].tlf = "22 22 22 22";
data[0].billede = "logo.png";

function visData(idx){
txt = "<img src='"+data[idx].billede+"'/><br />";
txt += "Navn: " + data[idx].navn + "<br />";
txt += "Telefon: " + data[idx].tlf;
vindue = window.open('','Oplysninger','toolbar=no,statusbar=no,width=300,height=300');
vindue.document.write(txt);
}
</script>

<a href="#" onclick="visData(0)" style="text-decoration:none;color:black">Rasmus Christensen</a><br>

1. hvor skal jeg indsætte det billede som skal poppe op med teksten??
2. Ved næste person på listen, skal jeg så kopiere det hele igen, men denne gang kalde det for data[1]? og næste data[2]osv:??

Rasmus
Avatar billede Rasmusjc Juniormester
30. september 2003 - 22:11 #7
Har fundet ud af det med billedet det var ved data[0].billede = "logo.png"; undrede mig bare over at jeg ikke skulle skrive <img src="../imag men det er der nok også en forklaring på.

Tænkte på hvis man skal tilføje noget udover navn og tlf. så laver man bare f.eks

data[0].fødselsdato=290883

og så i function skriver man under den med Telefon

txt +="fødselsdato:" + data[idx].fødselsdat;

Hvorfor skal man igrunden skrive [idx] hvad fortæller det??

Hilsen Rasmus
Avatar billede skovenborg Nybegynder
30. september 2003 - 22:22 #8
Det er rigtig nok den måde du tilføjer på (ud over at ø ikke kan bruges i navne så du bliver nød til fx at skrive:
data[0].foedselsdato=290883;
og senere
txt+="Fødselsdato:" + data[idx].foedselsdato;

idx er det index (sted) som man skal hente værdierne fra i arrayet data.
Når du skrive data[0] = new Array(), laver du et array (med data om personen), som ligger under index'et 0.

Når du kalder funktionen nede i linket (onclick="visData(0);"), så henter du data fra array'et i data[0] - altså i dette tilfælde Rasmus Christensen. idx er altså en variabel der indeholder et nummer, som skal referere til det valgte index i array'et.

Hvis du nu vil lave en ny person som hedder Gunnar Nielsen, så laver du endnu et array:
data[1] = new Array();
data[1].navn = "Gunnar Nielsen";

Læg mærke til at index nu hedder 1, og det vil sige du kan lave endnu et link, som laver en popup med Gunnar Nielsens data:
<a href="#" onclick="visData(1)" style="text-decoration:none;color:black">Rasmus Christensen</a><br>
Avatar billede skovenborg Nybegynder
30. september 2003 - 22:23 #9
...det var måske lidt meget på en gang, men jeg håber du forstår noget af det.
Avatar billede Rasmusjc Juniormester
30. september 2003 - 22:45 #10
Nej, det er da til at forstå.

Hvad med start og slut på script. Skal jeg kopiere det hele og så lave det om du skrev, altså med <script> bla bla bla. gunnar nielsen :O) </script>

eller er det nok bare at lave det der skal laves med data[1] under data[0] og så når jeg har lavet alle de data der skal laves så afslutte med </script> og efter det skrive alle de <a href...> som skal laves til de forskellige pers.??
Avatar billede Rasmusjc Juniormester
30. september 2003 - 23:04 #11
Skovenborg lige lidt mere!!!

Fik det oven over til at fungere, dog ikke helt.
Det kom til at se sådan her ud.

<script type="text/javascript">
var data = new Array();

data[0] = new Array();
data[0].navn = "Ole Frandsen";
data[0].tlf = "22 22 22 22";
data[0].billede = "../images/ole_frandsen.jpg";

function visData(idx){
txt = "<img src='"+data[idx].billede+"'/><br />";
txt += "Navn: " + data[idx].navn + "<br />";
txt += "Telefon: " + data[idx].tlf;
vindue = window.open('','Oplysninger','toolbar=no,statusbar=no,width=300,height=300');
vindue.document.write(txt);
}

data[1] = new Array();
data[1].navn = "Rasmus Christensen";
data[1].tlf = "22 22 22 22";
data[1].billede = "../images/rasmus_christensen.jpg";

function visData(idx){
txt = "<img src='"+data[idx].billede+"'/><br />";
txt += "Navn: " + data[idx].navn + "<br />";
txt += "Telefon: " + data[idx].tlf;
vindue = window.open('','Oplysninger','toolbar=no,statusbar=no,width=300,height=300');
vindue.document.write(txt);
}


</script>

<a href="#" onclick="visData(0)" style="text-decoration:none;color:black">Ole Frandsen</a><br>

<a href="#" onclick="visData(1)" style="text-decoration:none;color:black">Rasmus Christensen</a><br>

Problemet er så bare at hvis jeg åbner den første og derefter den anden, så bliver det første billede ved med at være der og navnet bliver stående for den første.

Nedenfor kommer så det andet billede forskudt med tlf. fra den første og derefter navn og tlf.

Kan man lave det så det ikke sker, evt i hvert sit popup vindue??
Avatar billede skovenborg Nybegynder
30. september 2003 - 23:40 #12
hov du skal kun lave en funktion - det er derfor roenving brugte den der idx, ellers var der jo i grunde ikke megen pointe i det.
Du behøver altså kun at skrive:
data[0] = new Array();
data[0].navn = "Ole Frandsen";
data[0].tlf = "22 22 22 22";
data[0].billede = "../images/ole_frandsen.jpg";
data[1] = new Array();
data[1].navn = "Rasmus Christensen";
data[1].tlf = "22 22 22 22";
data[1].billede = "../images/rasmus_christensen.jpg";
function visData(idx){
txt = "<img src='"+data[idx].billede+"'/><br />";
txt += "Navn: " + data[idx].navn + "<br />";
txt += "Telefon: " + data[idx].tlf;
vindue = window.open('','Oplysninger','toolbar=no,statusbar=no,width=300,height=300');
vindue.document.write(txt);
}
Avatar billede Rasmusjc Juniormester
30. september 2003 - 23:48 #13
Altså ligesom det her.
Der sker stadigvæk det at hvis jeg klikker på det første og derefter et andet navn, så bliver det et mix popup vindue med begge dataer.??

<script type="text/javascript">

var data = new Array();

data[0] = new Array();
data[0].navn = "Ole Frandsen";
data[0].tlf = "22 22 22 22";
data[0].billede = "../images/ole_frandsen.jpg";

data[1] = new Array();
data[1].navn = "Rasmus Christensen";
data[1].tlf = "22 22 22 22";
data[1].billede = "../images/rasmus_christensen.jpg";



function visData(idx){
txt = "<img src='"+data[idx].billede+"'/><br />";
txt += "Navn: " + data[idx].navn + "<br />";
txt += "Telefon: " + data[idx].tlf;
vindue = window.open('','Oplysninger','toolbar=no,statusbar=no,width=300,height=300');
vindue.document.write(txt);
}




</script>

<a href="#" onclick="visData(0)" style="text-decoration:none;color:black">Ole Frandsen</a><br>

<a href="#" onclick="visData(1)" style="text-decoration:none;color:black">Rasmus Christensen</a><br>
Avatar billede skovenborg Nybegynder
30. september 2003 - 23:51 #14
for at åbne i hvert sit popup vindue skal du skrive:
vindue = window.open('','_blank','toolbar=no,statusbar=no,width=300,height=300');

Da '_blank' er "framenavnet" (altså i dette tilfælde et nyt vindue).
Avatar billede skovenborg Nybegynder
30. september 2003 - 23:52 #15
...jeg havde misforstået den midsterste del af window.open før, så der lå problemmet ;-)
Avatar billede skovenborg Nybegynder
30. september 2003 - 23:59 #16
forresten var grunden til jeg kom til at skrive:
data[0].billede = "logo.png";
for noget tid siden, var fordi jeg altid bruger et billede som hedder logo.png, når jeg skal teste ting med billeder. Og så sker det desværre at jeg glemmer at fjerne det ;-)
Avatar billede Rasmusjc Juniormester
01. oktober 2003 - 00:13 #17
ja okay. Hvis jeg vil ændre baggrunden osv evt. lave en tabel, kan man det og hvis det skal gøres er det så ikke også i det der hedder vindue???

Hvorfor kommer der ikke sådan et sted hvor jeg kan give dig nogle point?? Det er vel efter en masse skriven et svar du er kommet med.
Avatar billede skovenborg Nybegynder
01. oktober 2003 - 13:07 #18
du kan kun give point hvis nogen har svaret - og det er ikke alle som svarer lige med det samme, så det må du leve med ;-)

Ved ikke om det lige er mig som skal have pointene i denne omgang, da jeg jo ikke selv fandt på scriptet (modificerede det bare). Men her har du et svar så kan du måske også høre med roenving om han også kunne give et eller sådan noget - du bestemmer.
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