07. september 2004 - 12:27Der er
26 kommentarer og 1 løsning
udskrive 4 poster ud fra et nummer
Hej.
Jeg har et script der indsætter et navn når man skriver et nummer. Men da jeg pludselig skal bruge fire oplysninger istedet for to har jeg et problem. Nummer er lige langt hele tiden og jeg kan derfor går ud fra det og tage resten til titel. Men titlerne er ikke lige lange og der er mellemrum i også, så hvordan dælen takler man lige den ?
Her har jeg f. eks.:
var KursusNr = new Array("4309 En meget lang titel", "4364 Og her en anden titel", "4701 og så er der den tredje titel, og dem er der mange af " );
Så har jeg en funktion der klarer det for mig og sætter titel ind i min formular.
function addKursusNr(form) { kursusnummer = form.KursusNr.value;
for (i = 0; i < KursusNr.length; i++) { if (KursusNr[i].substring(0, 4) == kursusnummer) { form.KursTitel.value = KursusNr[i].substring(5, KursusNr[i].length); i = KursusNr.length; } } }
Kan man skrive variablerne som f. eks. "nummer","titel","dato","pris" eller hvordan klarer man den. Jeg ved ikke meget om javascript, så derfor må jeg jo spørge jer :-)
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
var KursusNr = new Array(); KursusNr[KursusNr.length] = [4309,"En meget lang titel","1/10-2004",1565]; KursusNr[KursusNr.length] = [4364,"Og her en anden titel","1/1-2005",3657]; KursusNr[KursusNr.length] = [4701,"og så er der den tredje titel, og dem er der mange af","15/9-2004",18715];
-- så har du lavet et todimensionelt array, hvor f.eks. KursusNr[1][0] vil give tallet 4364, og KursusNr[2][2] tekst-datoen 15/9-2004 ...
-- den anden vnkel er at lave det som et objekt:
var KursusNr = new Array(); KursusNr[KursusNr.length] = {'nummer':4309,'titel':"En meget lang titel",'dato':"1/10-2004",'pris':1565}; KursusNr[KursusNr.length] = {'nummer':4364,'titel':"Og her en anden titel",'dato':"1/1-2005",3657}; KursusNr[KursusNr.length] = {'nummer':4701,'titel':"og så er der den tredje titel, og dem er der mange af",'dato':"15/9-2004",'pris':187150;
-- så har du et array af objekter, hvor du kan hente f.eks. KursusNr[1].titel eller KursusNr[2].pris !-)
Synes godt om
Slettet bruger
07. september 2004 - 12:57#2
Det virker noget volsomt. Der er mange titler, og så skal der jo skrives en del på hvert felt. Er det virkelig nødvendigt :-)
Når man skirver kursusnummer er det meningen at de tre resterende felter udfyldes. Filen vil jo også blive stor med alt den tekst der skal tilføjes pr. record. Kan det ikke laves lidt lettere ;-)
Synes godt om
Slettet bruger
07. september 2004 - 13:01#3
Jeg er heller ikke helt sikker på at jeg helt forstår dit eksempel.
Selv hvis du har rigtig lange titler, så skal du have 100, som gennemsnitligt er 100 karakterer lange, før du når 10 kb, så det vil se voldsomt ud kodemæssigt, men lur mig, om du ikke har en 3-4 billeder, som hver er mellem 20 og 50 kb !-)
-- så det voldsomme er det det fylder, men du kan f.eks. tage udgangspunkt i det trick, som jeg viste her:
-- der bliver en select fyldt op fra en .txt-fil, men den kunne du jo generere ved hjælp af dit database-udtræk, og det er så ikke den aktive søgefunktion, du har brug for men en udfyldelse af nogle felter på baggrund af indtastningen af tallet ...
-- alt sammen er ikke alt for voldsomt, noget endda ganske rutine-agtigt, så det kommer sådan set an på, hvordan du foretrækker det, for vi kan jo også lægge alle data (og selve koden til at fylde felterne !-) i en php- eller asp-genereret ekstern javascript-fil !o]
Synes godt om
Slettet bruger
07. september 2004 - 13:50#5
Du giver mig godtnok noget at tænke over :-)
Jeg regnede ikke med at det ville være så omfattende.
Jeg har det hele liggende i en database og har så forsøgt at lave udtræk af de felter jeg skal bruge, og med nummer og titel virker det.
Men det var da noget smartere hvis den kan hente det fra databasen istedet for. Men der tror jeg ikke jeg kan være med, da php ikke kan aktiveres med TAB som javascript kan.
Har du et eksempel på javascript der kan hente variablerne direkte i en MySQL database. Da systemet kører på Linux kan jeg ikke bruge ASP, men PHP går rimeligt :-) Det med databasen tiltaler mig i allerhøjeste grad, da den bliver opdateret med ændringer, når der er nogen. Og er der det skal jeg jo huske at få det lavet i de tilsvrende XXX.js filer.
-- så kan du aflæse alle data med javascript, f.eks. onload eller onchange på kursusnummer-feltet !-)
Synes godt om
Slettet bruger
07. september 2004 - 14:16#7
Aha, nu tror jeg ( bemærk jeg skrev: tror jeg ), at jeg begynder at forstå lidt af det :-) Det vil jeg rode videre med. Du må hellere lægge et svar, og så vil jeg kaste mig over kodningen, og se om jeg kan få det til at fungere. Det virker smart, og jeg håber jeg får det til at virke.
Selv tak - det er jo en fornøjelse. Jeg er i fuld gang med dit eksempel :-)
Synes godt om
Slettet bruger
07. september 2004 - 14:37#11
Jeg får at vide at:
kursusnummer = f.KursNr.value; KursNr er tom.
Skal den ikke kaldes med:
onchange="addKursusNr(this);"
Synes godt om
Slettet bruger
07. september 2004 - 14:49#12
Nu fik jeg rettet et par skrivefejl, og så skriver den en den venter et } i anden linie af kursus.php filen. Der er sådan en i slutningen af alle linierne. Den genererer fint de variabler, men komme med en fejl, jeg ikke kan gennemskue.
-- er du sikker på, at du ikke i en linje meget tæt på, har en tekst med en apostrof i ?-)
Synes godt om
Slettet bruger
07. september 2004 - 17:22#18
Det er der, den fjerner jeg lige, eller kan man gøre noget så den kan blive stående ?
Synes godt om
Slettet bruger
07. september 2004 - 17:26#19
Så kom den fejl ikke mere. Så komme denne i et lille skilt:
Linie 14: Error: 'KursNr.value' is null or not an object
Hvad kan det så skyldes. Det er da mere besværligt end jeg regnede med da jeg startede :-) Desværre er jeg ikke rigtig inde i det, så det er svært at finde fejl.
Det er jo feltnavnet, som jeg ændrede i scriptet, det skal jo også ændres i formen (og dit php-script !-)
Synes godt om
Slettet bruger
07. september 2004 - 17:28#22
Er det dem her ? KursusNr[KursusNr.length] der skal rettes
Synes godt om
Slettet bruger
07. september 2004 - 17:43#23
Ved at ændre denne:
function addKursusNr(f){ kursusnummer = f.KursusNr.value;
Fra det du gjorde, virker det nu, bortset fra at den skriver at Pris er undefined. Men der er nok stadig et eller andet forkert et sted. Jeg kan ikke gennemskue hvilke variabler jeg skal ændre hvor for ikke at få problemer, som du skrev tidligere.
-- og så også $_POST(KursNr) (eller hvordan det nu ser ud i php !-) i dit script, som skal bruge oplysningen !o]
Synes godt om
Slettet bruger
07. september 2004 - 17:56#25
Så fik jeg den pris på plads også. Jeg havde skrevet det med stort P i kursus.php.
Så nu virker det, ser det ud til,men altså uden den rettelse der kan give problemer i andre browsere, som du skrev. Det kan jeg ikke lige gennemskue nu.
Den kan kun potentielt give fejl i IE og Opera, så det skal du ikke bekymre dig !-)
Synes godt om
Slettet bruger
07. september 2004 - 17:59#27
Ok, så tager jeg det roligt ind til videre. Tak.
Det giver tilsyneladende ikke problemer i IE eller Mozilla Firefox som jeg har prøvet det i nu.
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.