kostenloser Webspace werbefrei: lima-city


Php Script unabhängig laufen lassen ?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    jv-web

    jv-web hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    jv-web schrieb:
    Allerdings so, dass der benutzer nicht mehr davon merkt, als das Leeren der textbox und auf das zweite script nicht gewartet wird
    Dazu wurde AJAX erfunden, das macht genau das was du brauchst: asynchron Anfragen an den Server stellen auf die 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>
  4. Autor dieses Themas

    jv-web

    jv-web hat kostenlosen Webspace.

    Sieht gut aus, geht's auch ohne jscript ?
  5. g****e

    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
  6. Autor dieses Themas

    jv-web

    jv-web hat kostenlosen Webspace.

    So wie ich das gelsesen hab sollte es trotzdem gehen, weil einfach die form submitet wird
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    jv-web schrieb:
    So wie ich das gelsesen hab sollte es trotzdem gehen, weil einfach die form submitet wird
    Meinst du damit meinen Code?
    Die Form wird eben nicht submittet, das bewirkt das
    return false;
    im
    onsubmit
    -Eventhandler.
    Es wird also nur der AJAX-Request gesendet und die Form selbst nicht...
  8. Autor dieses Themas

    jv-web

    jv-web hat kostenlosen Webspace.

    Aber der
    onSubmit
    code ist in jscript und wenn jscript deaktiviert ist sollte das
    return false;
    ja nicht wirken. Also eine Lösung, die immer gut ist :approve:
  9. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    jv-web schrieb:
    Also eine Lösung, die immer gut ist :approve:
    Da fällt mir gerade ein Fehler auf warum das nicht funktioniert...
    Per AJAX wird das Feld anders benannt als wenn es per submit verschickt wird... es müsste so aussehen:
    <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>
    Bei diesem Code macht es wirklich keinen Unterschied ob JavaScript aktiviert ist oder nicht... jedenfalls wirkt sich das nicht auf die Funktion aus.


    jv-web schrieb:
    Aber der
    onSubmit
    code ist in jscript und wenn jscript deaktiviert ist ...
    Es sei noch erwähnt, dass JScript eine Anpassung von Microschrott von JavaScript ist...
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!