Ankündigung

Einklappen
Keine Ankündigung bisher.

POST ohne dass eine neue Seite lädt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • POST ohne dass eine neue Seite lädt

    Hallo, wenn ich daten per post im Formular versende, lädt eine Neue Seite.
    Wie kann ich das Laden dieser Neuen Seite unterdrücken?

  • #2
    Bitte beschreibe den Anwendungsfall.

    [MOD: verschoben]
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Generell ohne weitere Infos zu haben => Falls JS benutzt werden darf, kann man AJAX verwenden....

      Kommentar


      • #4
        Ich kenne auch nur den Weg über Ajax.

        Kommentar


        • #5
          Eine Serverantwort mit Statuscode 204 No Content wäre eine weitere Möglichkeit. (Die dann aber wenig[er] Kontrollmöglichkeit bietet, ob die Verarbeitung des Requests auch geklappt hat.)
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            hi, also ich will das eigentlich auch komplett über JavaScript lösen, allerdings kenn ich die AJAX-Möglichkeit nur mit Get, ich brauch allerdings was, das mehr datein übertragen kann. Also hab ich die datein einfach per javascript in mein Formular eingetragen und dann verschickt.
            Wie geht also Post per AJAX b.z.w. Javascript?

            Kommentar


            • #7
              OK, hab selber rausgefunden wies per post geht, allerdings hab ich jetzt ein neues Problem:
              Beim Hochladen, oder Speichern der Datei wird der String gekürzt. Hat vielleicht jemand ne Ahnung, woran das liegen könnte?

              Kommentar


              • #8
                Wie wäre es, wenn du ein fertiges Framework/Librabry ala jquery, yui verwenden würdest?
                1. gibt es da auch div. Debuggingmöglichkeiten und
                2. musst du das Rad njicht neu erfinden
                3. woher sollen wir wissen wieso es bei dir gekürzt wird, wenn du keinen Code herzeigst?

                Kommentar


                • #9
                  also, da ihr immer nach Code verlangt:

                  Der Javascript code:
                  Code:
                  		function Lade(datei, text, verarbeitung, idInsert, bool ,post)	{
                  			
                  			if (window.ActiveXObject) {
                  				try {
                  					xmlHttp= new ActiveXObject("Msxml2.XMLHTTP");
                  				} catch (e) {
                  					try {
                  						xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
                  					} catch (e) {
                  					}
                  				}
                  			} else if (window.XMLHttpRequest) {
                  				try {
                  					xmlHttp= new XMLHttpRequest();
                  				} catch (e) {
                  				}
                  			}
                  			
                  			if (xmlHttp) {
                  				if	(typeof post == "undefined")	{
                  					xmlHttp.open('GET', datei + '.php?q='+text, bool);
                  					eval("xmlHttp.onreadystatechange = " + verarbeitung + ";");
                  					xmlHttp.send(null);
                  				}	else	{
                  					xmlHttp.open('POST', datei + '.php', bool);
                  					xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                  					eval("xmlHttp.onreadystatechange = " + verarbeitung + ";");
                  					xmlHttp.send("q=" + text);
                  				}
                  				
                  			}
                  		}
                  das js-script hier ist allgemein verfasst. Ich verwende für mein Problem dabei allerdings POST, also den unteren teil des if´s.


                  Das PHP-Skript:

                  PHP-Code:
                  <?php

                  $search 
                  $_POST["q"];

                  print(
                  $search);

                  if (
                  get_magic_quotes_gpc()) {
                          
                  $search stripslashes($search);
                  }

                  $tempA explode("|",$search);
                  $name $tempA[0];
                  $file $tempA[1];
                  $content $tempA[2];


                  $metaDoc fopen('../'.$name.'/meta.txt'"r") or print('<b>ERROR:</b><br>Fehler beim Laden der Datei: '.'../'.$name.'/meta.txt');
                  $meta fread($metaDoc9999);

                  $tempB explode("|",$meta);
                  $givenMod = -1;

                  foreach (
                  $tempB as &$value) {
                      
                  $tempC explode(":",$value);
                      
                      if    (
                  $file == $tempC[0])
                          
                  $givenMod $tempC[1];
                  }



                  $ip $_SERVER['REMOTE_ADDR'];

                  $loggedDog fopen('../'.$name.'/logged.txt'"r") or print('<b>ERROR:</b><br>Fehler beim Laden der Datei: '.'../'.$name.'/logged.txt');
                  $logged fread($loggedDog9999);

                  $tempB explode("|",$logged);
                  $avaiMod = -1;

                  foreach (
                  $tempB as &$value) {
                      
                  $tempC explode(":",$value);
                      
                      if    (
                  $ip == $tempC[0])
                          
                  $avaiMod $tempC[1];
                  }


                  if    (
                  $avaiMod >= $givenMod)    {
                      
                  $fileDoc fopen('../'.$name.'/'.$file"w") or print('<b>ERROR:</b><br>Fehler beim Laden der Datei: '.'../'.$name.'/'.$file);
                      
                  fwrite($fileDoc$content);
                      
                  }    else    {
                      print(
                  "key too low or false. please insert right or higher key!");
                  }

                  ?>
                  Dabei wird noch vorher die Zugriffsberechtigung überprüft. erst am ende wird die Datei geschrieben.

                  Und der Text der Hochgeladen wird wird von der funktion write so generiert:

                  Code:
                  function Write(name, file, content)	{
                  	Lade("../storetx/write", name + "|" + file + "|" + content, "Regive", "", false, true);
                  	
                  	if	(typeof answerVB == "undefined")	{
                  		return xmlHttp.responseText;
                  	}	else	{
                  		return answerVB;
                  	}
                  }
                  Also ich kanns mir nicht erklären, und danke schonmal jedem im voraus, der sich die mühe macht, das alles durchzuschauen

                  Kommentar


                  • #10
                    Du nimmst keinerlei Behandlung der Daten vor - wenn da also ein & drin vorkommt, beendet das den Inhalt des Parameters.

                    encodeURIComponent
                    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                    Kommentar

                    Lädt...
                    X