27. februar 2008 - 17:40Der 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?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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); }
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 :)
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)
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.
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.