Formular schicken ohne Serverantwort-Seite

messmar

Erfahrenes Mitglied
Hallo,

kann man ein Formular mit z.B.: action="register.jsp"
an den Server schicken aber (Hier kommt es) ohne Serveranwort zu erhalten.

Ich Meine, so dass die Seite register.jsp gar nicht im Browser aufgerufen wird bzw. angezeigt wird.

Der Sinn dahinter ist, dass ich die aktuelle Seite z.B.:
index.jsp im aktueellen Browserfenster sichtbar behalten will/muss, damit ich andere Elemente per JavaScript einblinden kann.


Anderes gesagt:
Die von dem User eigegebenen Formular-Daten müssen an den Server geschickt werden und zwar ohne Antwortseite, aber gleichzeitig muss ein vorher unsichtbares Element, sichtbar gemacht werden.

Kann man das evtl. mit Javascript z.B. erledigen?

Danke und Gruss
Messmar
 
Es gibt zwei Möglichkeiten: entweder das verarbeitende Skript gibt nichts aus sondern leitet auf eine andere Ressource um oder die Anfrage geschieht im Hintergrund, wofür allerdings JavaScript nötig ist. Eine weitere allerdings nicht sehr elegante Möglichkeit wäre, das verarbeitende Skript in einem Frame aufzurufen.
 
Hallo,

danke schon Mal für die Antwort.

[...]das verarbeitende Skript gibt nichts aus sondern leitet auf eine andere Ressource um[...]

könntest Du mir bitte das hier anhand eins Beisepiels erleutern. Ich verstehe nicht was Du ganz genau meinst.

Für die Javascript-Lösung, fehlt mir auch den Ansatzpunkt. Wie soll man hier vorgehen?

Danke und Gruß
Messmar
 
Hier habe ich mal kurz ein Beispiel zusammengebastelt:
index.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
 <script type="text/javascript" src="rcp.js"></script>
</head>

<body>
<div class="container">
        <div id="ausgabe" class="ausgabe">
        </div>  <div class="form"><input type="text" name="x" id="x" class="inp"><input name="b1" type="button" value="Senden" onclick="sndReq(); return false;"/></div>
</div>
</body>
</html>

rcp.js
Code:
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

function sndReq() {
    var x;
    x = document.getElementById('x').value;
    http.open('get', 'rcp.php?action='+x);
    http.onreadystatechange = handleResponse;
    http.send(null);

}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();
            document.getElementById('ausgabe').innerHTML = response;

    }
}

rcp.php
PHP:
<?php
echo $_GET['action'];
?>

pMx
 
Das wäre auch eine super elegante Lösung.

Ich habe aber dazu auch so einen Lösungsvorschlag:

Ich habe jetzt nur die weiteren Felder, die der User ausfüllen soll/muss per Javascript eingeblendet (und die Andern ausgeblendet) und immer wieder am Ende der Felder den Sende-Button als
Type="Button" definiert und onClick verwendet.

Das Senden des Formulars findet ganz am Ende Statt bzw. nach dem ausfüllen des letzten Formulars und dessen letzte Felder.

Die Session behalte ich natürlich, und mache ich davon gebrauch wenn
es nötig ist.

Danke und Gruss
Messmar
 

Neue Beiträge

Zurück