30. april 2002 - 20:07
Der er
14 kommentarer og 1 løsning
Tekstfelter slettes ved reload?
Jeg har en JSP side hvor jeg har nogle tekstfelter & og en knap på. Når jeg trykker på min gem-knap, kommer jeg ind i IF'en, hvor jeg ønsker at behandle nogle data. Problemmet er at når jeg trykker på min gem-knap, reloades hele siden, og mine tekstfelter slettes? Kan det ikke lade sig gøre at trykke på en knap, uden at tekstfelterne slettes? Eller endnu bedre, kan det ikke lade sig gøre at man trykker på en knap, får dataerne fra tekstfelterne, behandlerne dem i JSP, uden at siden reloades? Her er siden: <%@ page import="Tester" %> <jsp:useBean id="T" class="Tester" scope="session"/> <html> <head> <title>kunde</title> </head> <body> <p align="center"><b><font size="6" face="Arial, Helvetica, sans-serif"> </font></b></p> <p><u><b>Kunde</b></u></p> <form name="form1" method="post" action=""> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1" width="269"> <tr> <td width="118"><b>ID</b></td> <td width="148"> <input type="text" name="ID" size="20" value=""> </td> </tr> <tr> <td width="118"><b>Cprnr.</b></td> <td width="148"> <input type="text" name="Cprnr" size="20" value=""> </td> </tr> </table> <input type="submit" name="Gemknap" value="Gem ændringer"> </form> <p> </p> <p> </p> <% String Gemknap=""; Gemknap = request.getParameter("Gemknap"); String Cprnr = request.getParameter("Cprnr"); String ID = request.getParameter("ID"); if(Gemknap!=null && Gemknap.equals("Gem ændringer")) { //behandler data...... } %> </body> </html>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
30. april 2002 - 20:12
#1
i starten af siden skal du have noget i denne retning. (eksemplet er lavet for dit 'ID' felt) <% String id=request.getParameter("ID"); if(id==null || id.length()==0) id=""; %> ret så også <input type="text" name="ID" size="20" value=""> til <input type="text" name="ID" size="20" value="<%=id%>"> så skulle det virke. husk at lav det samme for de andre felter.
det virker jo fint. tak. hvad sker der iøvringt når en side reloades med følgende jsp kode: <% Kunde k = new Kunde(); %> bliver der oprettet et nyt objekt, eller bruges det samme igen? mit scope er "session"
når du opretter på den måde bliver der lavet et nyt object hver gang. Så betyder scope intet. Hvis du instantieret objektet i din jsp:property så betyder scope noget
ok. dvs. at hvis jeg skriver: <%@ page import="test.*" %> <jsp:useBean id="kunde" class="test.kunde" scope="session"/> så er det samme objekt jeg arbejder på hver gang??
som altid, har du været en stor hjælp. Tak.
>>disky hvordan referer jeg fra mit JSP kode, direkte til et tekstfelt? Altså når jeg kommer ind på sider sættes tekstfeltet til en værdi: <input type="text" name="Cprnr" size="20" value="<%=cpr%>"> og I jsp-koden ønsker jeg at ændre værdien i tekstfeltet: <% if(Gemknap!=null && Gemknap.equals("Gem ændringer")) { ?? } %>
du kan ikke ændre det fra JSP uden at siden skal reloades, og dette kan kun igang sættes fra client siden. hvis du vil gøre det uden reload, skal du bruge javascript
ok, så må jeg vel reloade. hvordan skal JSP koden så se ud, for at skrive direkte i tekstfeltet? (efter at jeg har trykket på min submit-knap) <input type="text" name="Cprnr" size="20" value="<%=cpr%>"> <input type="submit" name="Gemknap" value="Gem ændringer"> </form> <% String Gemknap=""; Gemknap = request.getParameter("Gemknap"); if(Gemknap!=null && Gemknap.equals("Gem ændringer")) { ??? } %>
I din <input type="text" felt sætter value="<%=cpr%>" så er det 'cpr' du skal ændre Enhver ændring der er lavet i den variable før du laver dit textfelt vil blive vist i feltet.
ja, det lyder logisk, men jeg kan ikke få det til at virke? de nye værdier bliver aldrig sat? <html> <head> <title>kunde</title> </head> <body> <% String id=request.getParameter("ID"); String cpr= request.getParameter("Cprnr"); %> <p align="center"><b><font size="6" face="Arial, Helvetica, sans-serif"> </font></b></p> <p><u><b>Kunde</b></u></p> <form name="form1" method="post" action=""> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1" width="269"> <tr> <td width="118"><b>ID</b></td> <td width="148"> <input type="text" name="ID" size="20" value="<%=id%>"> </td> </tr> <tr> <td width="118"><b>Cprnr.</b></td> <td width="148"> <input type="text" name="Cprnr" size="20" value="<%=cpr%>"> </td> </tr> </table> <input type="submit" name="Gemknap" value="Gem ændringer"> </form> <% String Gemknap=""; Gemknap = request.getParameter("Gemknap"); if(Gemknap!=null && Gemknap.equals("Gem ændringer")) { id="nytID"; cpr="nytCpr"; } %> </body> </html>
hvad er det lige du forsøger her: <% String Gemknap=""; Gemknap = request.getParameter("Gemknap"); if(Gemknap!=null && Gemknap.equals("Gem ændringer")) { id="nytID"; cpr="nytCpr"; } %>
Hvis jeg trykker på knappen, så skal de 2 Strings tildeles nogle nye værdier! hvad mener du?
ja men så er siden færdig, og værdierne forsvinder. Hvis de skal overleve til næste gang skal du gemme dem et sted. I dit tilfælde er det på session stacken, da formen allerede er postet.
Kurser inden for grundlæggende programmering