Php Script unabhängig laufen lassen ?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
anpassung
asynchron anfragen
benutzer
button
code
datei
eingabe
fehler
feld
form
funktion
machen
parameter
post
senden
server
stellen
url
weben
wirken
-
Hallo,
erstmal der code
<form action="<!-- Was soll hier rein ? -->" method="post"> <input type="text" name="text" id="text" style="width:400px;"> <input type="submit" value="senden">
wenn man auf den Button drückt soll die datei post.php mit den parametern
text=[eingabe] erfolgen. Allerdings so, dass der benutzer nicht mehr davon merkt, als
das Leeren der textbox und auf das zweite script nicht gewartet wird -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
jv-web schrieb:
Dazu wurde AJAX erfunden, das macht genau das was du brauchst: asynchron Anfragen an den Server stellen auf die nicht gewartet wird.
Allerdings so, dass der benutzer nicht mehr davon merkt, als das Leeren der textbox und auf das zweite script nicht gewartet wird
Also mal ein HTML-Code:<script type="text/javascript"><!-- function createXMLHttpRequest() { if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } else { // code for IE6, IE5 return new ActiveXObject("Microsoft.XMLHTTP"); } } function sendRequest(data) { var request = createXMLHttpRequest(); request.onreadystatechange = function() { if((request.readyState == 4) && (request.status == 200)) { var doc = request.responseText; // in der Variablen doc stehen zurückgekommene Daten // hier könntest du das dann verarbeiten... } } request.open("POST", "seite.php", true); request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.send(data); } function send() { var textfield = document.getElementById('text'); var data = 'name=' + encodeURIComponent(textfield.value); sendRequest(data); } // --></script> <form action="seite.php" method="post" onsubmit="send(); return false"> <input type="text" name="text" id="text" style="width:400px;" /> <input type="submit" value="senden" /> </form>
-
Sieht gut aus, geht's auch ohne jscript ?
-
Nein
Ohne Javascript kannst du das Event nicht entsprechend behandeln und eine asyncrone Anfrage senden. Ohne Javascript müsstest du immer die Seite neu laden, was du ja eben nicht willst, weil man es merkt.
Liebe Grüße -
So wie ich das gelsesen hab sollte es trotzdem gehen, weil einfach die form submitet wird
-
jv-web schrieb:
Meinst du damit meinen Code?
So wie ich das gelsesen hab sollte es trotzdem gehen, weil einfach die form submitet wird
Die Form wird eben nicht submittet, das bewirkt das
imreturn false;
-Eventhandler.onsubmit
Es wird also nur der AJAX-Request gesendet und die Form selbst nicht... -
Aber der
code ist in jscript und wenn jscript deaktiviert ist sollte dasonSubmit
ja nicht wirken. Also eine Lösung, die immer gut istreturn false;
-
jv-web schrieb:
Da fällt mir gerade ein Fehler auf warum das nicht funktioniert...
Also eine Lösung, die immer gut ist
Per AJAX wird das Feld anders benannt als wenn es per submit verschickt wird... es müsste so aussehen:
Bei diesem Code macht es wirklich keinen Unterschied ob JavaScript aktiviert ist oder nicht... jedenfalls wirkt sich das nicht auf die Funktion aus.<script type="text/javascript"><!-- function createXMLHttpRequest() { if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } else { // code for IE6, IE5 return new ActiveXObject("Microsoft.XMLHTTP"); } } function sendRequest(data) { var request = createXMLHttpRequest(); request.onreadystatechange = function() { if((request.readyState == 4) && (request.status == 200)) { var doc = request.responseText; // in der Variablen doc stehen zurückgekommene Daten // hier könntest du das dann verarbeiten... } } request.open("POST", "seite.php", true); request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.send(data); } function send() { var textfield = document.getElementById('text'); // hier war der Fehler: // text= muss das gleiche sein wie beim name-Attribut vom Textfeld var data = 'text=' + encodeURIComponent(textfield.value); sendRequest(data); } // --></script> <form action="seite.php" method="post" onsubmit="send(); return false"> <input type="text" name="text" id="text" style="width:400px;" /> <input type="submit" value="senden" /> </form>
jv-web schrieb:
Es sei noch erwähnt, dass JScript eine Anpassung von Microschrott von JavaScript ist...
Aber der
code ist in jscript und wenn jscript deaktiviert ist ...onSubmit
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage