Avatar billede axe2 Nybegynder
07. oktober 2003 - 14:55 Der er 10 kommentarer

form submit

Jeg ønsker at blive på samme side som der blev submitted fra, efter at der er blevet submitted, er der nogle der kan scripte det ?
Avatar billede keysersoze Ekspert
07. oktober 2003 - 14:56 #1
kan du ikke bare angive action i din form til at være den side du står på?
Avatar billede axe2 Nybegynder
07. oktober 2003 - 15:05 #2
nope jeg har et par parametre der skal overføres til en Servlet du får lige koden. Problemet er at de brugere der står i dropdown boksen, gerne skulle kunne "huskes", altså den seneste modtager

<FORM action="servlet/chatservlet1.ChatServlet" method="post">
<DIV align="center">
<%
java.util.Map brugere = chatservlet1.ChatServlet.getAndreBrugere(session);
java.util.Set keys = brugere.keySet();
java.util.Iterator it = keys.iterator();
String brugernavne[] = new String[brugere.size()];
int i = 0;
while(it.hasNext()) {
String k = (String)it.next();
ChatBruger cb = (ChatBruger)brugere.get(k);
brugernavne[i] = cb.getNavn();
i++;
}
%>
<SELECT name="beskedmodtager">
<OPTION>
alle
</OPTION>
<%for(int j = 0;j < brugernavne.length;j++) {%>
<OPTION>
<%=brugernavne[j]%>
</OPTION>
<%}%>
</SELECT>

<INPUT type="text" name="chatinput" size="20">
<INPUT type="submit" name="send" value="send tekst" onclick="sub"></DIV>
</FORM>
</BODY>
Avatar billede sbm Nybegynder
07. oktober 2003 - 15:41 #3
Hmmm. En tankestreg... Er det ikke muligt at lave en HTTP-redirect med GET-parametre koblet på...?

I så fald kan side 1 submitte til side 2 (din servlet) som så processerer data efter alle kunstens regler, men udskriver ingenting til browseren. Istedet laver den en redirect til side 1 med f.eks. parameter bruger=5, hvorefter din side 1 altid skal smage på om denne parameter er sat. I så fald skal denne bruger forhåndsvælges i dropdown-boksen.
Avatar billede sbm Nybegynder
07. oktober 2003 - 15:44 #4
Alternativt kan du eksperimentere med at lave et javascript kald på side 2:

<body onload="history.go(-1);">

eller noget i den dur. Men den løsning virker kun hvis javascript er slået til, og jeg tør ikke love at det opfører sig ens i alle browsere. At tage hånd om det serverside vil klart være at foretrække.
Avatar billede sbm Nybegynder
07. oktober 2003 - 15:51 #5
ELLER!!!

Du kan evt. lave en skjult IFRAME på din side. Den har et navn, og hvis du sætter target for din form til at ramme den IFRAME, vil du foran stadig have din side 1, uden at du på noget tidspunkt har forladt den.
Avatar billede sbm Nybegynder
07. oktober 2003 - 15:52 #6
Og det kommer vist så tæt på det du spørger efter, at jeg vil tillade mig at smide et svar. :-)
Avatar billede axe2 Nybegynder
07. oktober 2003 - 21:01 #7
ELLER!!!

Du kan evt. lave en skjult IFRAME på din side. Den har et navn, og hvis du sætter target for din form til at ramme den IFRAME, vil du foran stadig have din side 1, uden at du på noget tidspunkt har forladt den.

kan du uddybe dette med et kode eksempel
Avatar billede sbm Nybegynder
07. oktober 2003 - 23:09 #8
Ok. Det bliver kodet frit fra hoften her...

<html>
<body>
    <form action="side2servlet" method="post" target="skjultiframe">
    <input type="text" name="chatline"><br />
    <select name="privatchat">
        <option value="0">Vælg et navn at skrive privat til...</option>
        <option value="1">Knud</option>
        <option value="2">Poul</option>
        <option value="3">Egon Weidekamp</option>
    </select><br />
    <input type="submit" name="submit" value="submit"><br />
    </form>
    <!-- Denne iframe skal så gøre skjult på en eller anden måde.
    F.eks. ved at lægge i en layer og sætte hidden -->
    <iframe name="skjultiframe" height="300" width="400" src="blankside.htm"></iframe>
</body>
</html>

Noget i den stil. Du vil så muligvis udvide med et javascript der tømmer din chatlinie, så man ikke skal slette sin tekst hver gang. Der kan du sikkert finde noget brugbart ved at søge her på eksperten.
Avatar billede sbm Nybegynder
07. oktober 2003 - 23:16 #9
Jeg ville gerne være lidt behjælpelig, men jeg er ikke hos mig selv, så jeg har ikke nogen eksempler lige ved hånden jeg kan smide op til dig. Jeg er i venligt selskab, og har fået lidt at drikke, så jeg er ikke heeeeelt pålidelig med det kode jeg skriver. :-)

Jeg tror også du kan finde nogle gode eksempler omkring det at gøre din iframe usynlig. Søg på f.eks. "gemme" eller "skjult" samt "opacity" og bemærk at der er et specielt parameter hvis du også ønsker at skjule den i f.eks. Mozilla, men jeg kan ikke huske hvad den hedder. MozOpacity eller noget i den dur.

Håber det hjalp.
Avatar billede olebole Juniormester
08. oktober 2003 - 06:12 #10
<ole>

Der er masser af muligheder. Én kunne som sagt være en skjult iframe:
<iframe name="skjultiframe" style="display:none"></iframe>

Du kan i IE bruge et java script:

<script id="ib" type="text/JavaScript"></script>

Så kan du på et tidspunkt loade en tom JavaScript-fil med:
document.all["ib"].src = "http://www.my_domain.dk/my_script.jsp?noget=bla&noget_andet=blabla";

Eller du kan loade en billedfil med:
var im = new Image();
im.src = "http://www.my_domain.dk/my_picture.jsp?noget=bla&noget_andet=blabla";

I de to sidste eksempler skal den request'ede fil naturligvis behandle de medsendte parametre, før den output'er det ønskede (en tom JS-fil - eller en 1*1px gif).

/mvh
</bole>
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