3d: Daten mit Post oder Get senden, ohne dass die Seite neuladet

Hallo,
Ich möchte Daten mit Post zum Datenbank schicken, und vorher die Eingabe mit mehrere Php Funktionen bearbeiten und dann im Datenbank einfügen.
z.b.

Eingabe Feld (index.php) -> Bearbeitung der Eingaben und im Datenbank einfügen (edit.php)

Die Daten werden mittle method="post" action="edit.php" versendet.
Nun möchte das die Bearbeitung im Hintergrund auf dem Server laufen und dass der Benutzer, wenn es auf submit klickt, in der Seite index.php bleibt. Also wie kann ich verhindern ,dass die Seite edit.php im Browser geöffnet wird??

2 Frage,
kann man die Datenbank anfrage in einem Cache auf dem Server speichern??
und die Cache nur aktualiesieren, wenn es Daten von der Eingabe im Frage 1 gestellt?

  1. hi,

    Die Daten werden mittle method="post" action="edit.php" versendet.
    Nun möchte das die Bearbeitung im Hintergrund auf dem Server laufen und dass der Benutzer, wenn es auf submit klickt, in der Seite index.php bleibt. Also wie kann ich verhindern ,dass die Seite edit.php im Browser geöffnet wird??

    Ajax ;-)

    Method POST und Upload ist möglich, aber ein bischen geficke, habs noch nicht getestet. Musst mal ein bischen suchen mit Goooo.....e.

    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    1. hi,

      »» Die Daten werden mittle method="post" action="edit.php" versendet.
      »» Nun möchte das die Bearbeitung im Hintergrund auf dem Server laufen und dass der Benutzer, wenn es auf submit klickt, in der Seite index.php bleibt. Also wie kann ich verhindern ,dass die Seite edit.php im Browser geöffnet wird??

      Ajax ;-)

      Method POST und Upload ist möglich, aber ein bischen geficke, habs noch nicht getestet. Musst mal ein bischen suchen mit Goooo.....e.

      Hotti

      Achso na ja Stimmt, das habe ich vergessen. Danke
      Aber vielleicht gibt es auch so ein Tag wie method="post" action="edit.php"
      redirect="no" :) ??
      Gruß

      1. Anfängerfragen sind ja ok ... aber wenn man absolut nicht weiss von was man spricht ...

        http://www.php-kurs.info/warum_php.html

        1. Anfängerfragen sind ja ok ... aber wenn man absolut nicht weiss von was man spricht ...

          http://www.php-kurs.info/warum_php.html

          ist das deine webseite??
          wie kommst du drauf??
          dass ich nicht weiß, wovon ich spreche??

    2. hi,

      aber ein bischen geficke, habs noch nicht getestet.

      Ich schon -- wenn's mal gar nicht weiter geht, eine willkommene abwechslung ;))

      mfg

      --
      echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
      array(2) {
        ["SELFCODE"]=>
        string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
        ["Meaningful"]=>
        string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
      }
  2. Das Zauberwort heisst Ajax oder XMLHttpRequest

    http://de.wikipedia.org/wiki/XMLHttpRequest

    2 simple Bibliotheken bzw Links:

    http://www.degraeve.com/reference/simple-ajax-example.php
    http://www.modernmethod.com/sajax/

    Gibt natürlich mittlerweile tausende (und sehr mächtige) Libraries (z.B. Zend).

  3. echo $begrüßung;

    Nun möchte das die Bearbeitung im Hintergrund auf dem Server laufen und dass der Benutzer, wenn es auf submit klickt, in der Seite index.php bleibt. Also wie kann ich verhindern ,dass die Seite edit.php im Browser geöffnet wird??

    Ohne Ajax: Warum lässt du die Arbeit nicht von index.php erledigen? Oder willst du, dass nicht mal ein Roundtrip zum Server erfolgt?

    kann man die Datenbank anfrage in einem Cache auf dem Server speichern??
    und die Cache nur aktualiesieren, wenn es Daten von der Eingabe im Frage 1 gestellt?

    Wenn ich dieses Wortgebilde richtig entschlüsselt habe: Das gibt Erweiterungen für PHP, die einen Cache zur Verfügung stellen. Die dürften aber nur auf dem eigenen Server einsetzbar sein. Der Wald- und Wiesenhoster wird sie nicht zur Verfügung stellen.

    echo "$verabschiedung $name";

    1. Hallo,

      »» Nun möchte das die Bearbeitung im Hintergrund auf dem Server laufen und dass der Benutzer, wenn es auf submit klickt, in der Seite index.php bleibt. Also wie kann ich verhindern ,dass die Seite edit.php im Browser geöffnet wird??

      Ohne Ajax: Warum lässt du die Arbeit nicht von index.php erledigen? Oder willst du, dass nicht mal ein Roundtrip zum Server erfolgt?

      Wenn das im Index.php berechnet wird, dann braucht die Berechnung ungefär ein Minute Zeit. und Ich will nicht dass die Benutzer diese Zeit warten.
      Ich werde halt das einfach dann mit Ajax basteln.

      »» kann man die Datenbank anfrage in einem Cache auf dem Server speichern??
      »» und die Cache nur aktualiesieren, wenn es Daten von der Eingabe im Frage 1 gestellt?

      Wenn ich dieses Wortgebilde richtig entschlüsselt habe: Das gibt Erweiterungen für PHP, die einen Cache zur Verfügung stellen. Die dürften aber nur auf dem eigenen Server einsetzbar sein. Der Wald- und Wiesenhoster wird sie nicht zur Verfügung stellen.

      Hier habe ich was schönes gefunden, ich denke das hilft mir schon weiter. Aber leider kann man das nur auf eigenen Server einstellen.

      Vielen Dank für deine Hilfe
      http://www.administrator.de/Der_MySQL_Query-Cache.html

  4. Hi,

    dass der Benutzer, wenn es auf submit klickt, in der Seite index.php bleibt. Also wie kann ich verhindern ,dass die Seite edit.php im Browser geöffnet wird??

    Indem edit.php keine Bildschirmausgabe macht, sondern einfach folgende Header sendet:

      header('Status: 204 No Content');  
      header($_SERVER['SERVER_PROTOCOL'].' 204 No Content');  
      header('Connection: close');  
    
    

    Ajax ist für so etwas also vergleichsweise vollkommen überkandidelt. Es hat zudem den Nachteil, daß es nur bei aktiviertem JS (und ggf. aktiviertem ActiveX) funktioniert (eine halbwegs aktuelle JS-Version vorausgesetzt - aber auch den 204er verstehen seeeehr alte Browser ggf. nicht), bietet aber den Vorteil, auch das Ergebnis der Aktion mitgeteilt zu bekommen, um, z.B. bei Fehlern, darauf reagieren zu können.

    Gruß, Cybaer

    --
    Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
    (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)