Avatar billede hurra Novice
27. februar 2008 - 17:40 Der er 6 kommentarer og
1 løsning

Find værdierne fra alle input felter

Jeg er ved at lave en side til noget lager styring. Men jeg er rendt i problemer.

Jeg har en masse forskellige typer oplysninger jeg skal have gemt, og sammetidign med at man indtaster nyt data, skal det være muligt at se hvad der er i databasen, som minder om det produkt man er ved at tilføje.

Derfor har jeg valgt at lave en del iframes (6 for at være mere præsis), hvor i man skal indtaste sit data. Der er altså en række input felter i hver ramme. Flere af inputfelterne i rammerne bliver lavet dynamisk, alt efter hvilke atributer der findes i tabellerne i databasen.

Når man har indtastet alt data, skal man kunne submitte det. Men hvordan gør jeg det smartest?

Min egen ide er, at lave en javascript der bliver kaldt når jeg trykker påå submit knappen, og det script skal så kalde en ny side, hvor alle parametrene der er blevet indtastet bliver sendt over til. Men da jeg ikke kender navnene på mine input felter (da de er navn givet efter hvilke attributer de skal bruges sammen med), bliver jeg nødt til at kunne 'scanne' alle elementer i en hel ramme, og finde navn og værdi for input felterne.

Er det en smart måde at gøre det på, eller skal jeg lave mit design helt om? Hvis jeg beholder denne løsning, hvordan får jeg så fat i navn og værdier på alle input felterne i en ramme?
Avatar billede olebole Juniormester
27. februar 2008 - 18:10 #1
<ole>

Det lyder som en ret rodet løsning. Jeg ville helt klart skrive alt sammen i ét dokument og så tale med serveren i baggrunden via Ajax. Det kræver dog, at man er _meget_ stærk i HTML, JavaScript, CSS og ikke mindst DOM. Bevares, der er såkaldte Ajax-libraries 'derude', men alle de, jeg foreløbigt har set, er skrevet i dårlig og invalid kode  :o|

Hvis du giver en iframe en id, kan du få fat i alle dens form-elementer på denne måde:

var oFr = document.getElementById("IFRAME_ID");
var aElms = oFr.contentWindow.document.forms[0].elements;
var sName, sValue;
for (var i=0,j=aElms.length; i<j; i++) {
    sName = aElms[i].name;
    sValue = aElms[i].value;
    alert(sName + " => " + sValue);
}

/mvh
</bole>
Avatar billede olebole Juniormester
27. februar 2008 - 18:11 #2
- forudsat, at dokumentet i iframe'en kun indeholder én form  ;o)
Avatar billede hurra Novice
27. februar 2008 - 20:22 #3
Jeg vil også meget gerne lave det hele i ét dokument, men mit problem er, at jeg har 4 forme, og jeg ved først hvordan den næste i rækken skal se ud, når den forige er udfyldt. Så hvis det skal laves i samme dokument, skal jeg loade den heletiden, med de oplysninger jeg har... men det kan jeg selvføldig også godt gøre.

Jeg overvejer lige om jeg skal designe noget om, mens jeg prøver dit forslag :)
Avatar billede olebole Juniormester
27. februar 2008 - 20:36 #4
Ved brug af Ajax kan man godt indsætte elementer på basis af brugerhandlinger og baggrunds kommunikation med serveren - men det er en langhåret omgang, hvis det skal bliver godt og effektivt.
Dynamiske interfaces til den slags forretningslogik kan hurtig blive meget komplekse - specielt, hvis der er tale om et interface, hvor der foretages mange handlinger pr. browser session  ;o)
Avatar billede hurra Novice
27. februar 2008 - 22:05 #5
Jeg har fået det til at virke nu, men jeg kan godt se det rigtigt smarte i at lave det hele i ét document, dog bliver der også rigtigt meget extra arbejde i det.

Stadig væk, jeg skal i hvertfald prøve det, så må jeg bag efter afgøre hvilken løsning jeg syntes er smartest :)

olebole, du har besvaret mit spørgsmål, kom med et svar.
Avatar billede olebole Juniormester
27. februar 2008 - 22:36 #6
- det kommer her  ;o)
Avatar billede hurra Novice
28. februar 2008 - 17:27 #7
og tak for hjælpen
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