Avatar billede tri Nybegynder
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>&nbsp;</p>
<p>&nbsp;</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>

Avatar billede disky Nybegynder
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.
Avatar billede tri Nybegynder
01. maj 2002 - 00:45 #2
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"
Avatar billede disky Nybegynder
01. maj 2002 - 00:48 #3
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
Avatar billede tri Nybegynder
01. maj 2002 - 01:11 #4
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??
Avatar billede disky Nybegynder
01. maj 2002 - 01:12 #5
korrekt
Avatar billede tri Nybegynder
01. maj 2002 - 01:18 #6
som altid, har du været en stor hjælp. Tak.
Avatar billede disky Nybegynder
01. maj 2002 - 01:21 #7
selv tak.
Avatar billede tri Nybegynder
01. maj 2002 - 10:27 #8
>>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")) {

??

}

%>
Avatar billede disky Nybegynder
01. maj 2002 - 10:39 #9
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
Avatar billede tri Nybegynder
01. maj 2002 - 10:48 #10
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")) {

???
       
}

%>
Avatar billede disky Nybegynder
01. maj 2002 - 10:49 #11
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.
Avatar billede tri Nybegynder
01. maj 2002 - 11:04 #12
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>
Avatar billede disky Nybegynder
01. maj 2002 - 11:44 #13
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";


       
}

%>
Avatar billede tri Nybegynder
01. maj 2002 - 12:31 #14
Hvis jeg trykker på knappen, så skal de 2 Strings tildeles nogle nye værdier!

hvad mener du?
Avatar billede disky Nybegynder
01. maj 2002 - 15:00 #15
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.
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
Kurser inden for grundlæggende programmering

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