29. september 2003 - 23:27Der 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.??
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();
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??
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.
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:??
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??
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>
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.??
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??
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); }
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.??
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 ;-)
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.
Synes godt om
Ny brugerNybegynder
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.