ansch: WIe kann das neuladen von Seiten verhindert werden?

Hallo,

ich habe folgendes Problem:

Ich habe in einem größeren form ein form das aus einem Eingabefeld und einem Button (submit) besteht.
Wenn nun jemand auf diesen button klickt soll die eingabe aus dem eingabefeld per get an einen iframe geschickt und dann angezeigt werden, das funktioniert auch soweit.

Das Problem ist nur, dass die Seite immer wieder neu läd, deshalb gehen zum einen die ganzen vorherigen eingaben des größeren forms und zum anderen alles was zuvor im kleinen form eingegeben wurde verloren.

Es muss doch möglich sein, mehrere Wörter nacheinander abzuschicken, ohne das immer gleich die ganze seite neu geladen wird.

Ich hab es schon mit form action="", form action="#" und form action="aktuelleseite.php" probiert.

Ich will die Daten danach ja noch weiterverwenden und wollte sie deswegen eigentlich erstmal in einem array speichern und erst, wenn das gesamte (größere) form abgeschickt wird, wollte ich diese Daten endgültig in der DB speichern.

  1. Mahlzeit ansch,

    Ich habe in einem größeren form ein form

    <http://de.selfhtml.org/html/referenz/elemente.htm#form@title=Ein <form> in einem <form>>? Allein das ist schon invalider HTML-Code. Du solltest dringend Deinen Quellcode validieren ...

    Wenn nun jemand auf diesen button klickt soll die eingabe aus dem eingabefeld per get an einen iframe geschickt und dann angezeigt werden, das funktioniert auch soweit.

    Wie genau "funktioniert das"? Hast Du den Namen des Ziel-<iframe> als http://de.selfhtml.org/html/formulare/definieren.htm#zielfenster@title=Zielfenster angegeben?

    Das Problem ist nur, dass die Seite immer wieder neu läd,

    Was meinst Du mit "neu lädt"? Liegt das vielleicht daran, dass Du eben kein Zielfenster (s.o.) angegeben hast? Dann ist doch klar, dass das aktuelle Formular abgeschickt und im aktuellen Fenster das Ergebnis des das Formular verarbeitenden Skript zu sehen ist ... wieso sollte es auch anders sein?

    Es muss doch möglich sein, mehrere Wörter nacheinander abzuschicken, ohne das immer gleich die ganze seite neu geladen wird.

    Muss es? Was genau bedeutet "mehrere Wörter nacheinander abschicken"? Welches Verhalten hättest Du gern?

    Ich hab es schon mit form action="", form action="#" und form action="aktuelleseite.php" probiert.

    Probieren bringt in der Regel relativ wenig. Was das "http://de.selfhtml.org/html/referenz/attribute.htm#form@title=action"-Attribut enthalten sollte, ist klar definiert.

    Ich will die Daten danach ja noch weiterverwenden und wollte sie deswegen eigentlich erstmal in einem array speichern und erst, wenn das gesamte (größere) form abgeschickt wird, wollte ich diese Daten endgültig in der DB speichern.

    In was für einem Array? Du solltest Deinen Lesern mehr Informationen geben, damit sie Dir helfen können. Eine Beispielseite wäre bei dem Komplexitätsgrad auch nicht schlecht ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo EKKi,

      Mahlzeit ansch,

      »» Ich habe in einem größeren form ein form

      <http://de.selfhtml.org/html/referenz/elemente.htm#form@title=Ein <form> in einem <form>>? Allein das ist schon invalider HTML-Code. Du solltest dringend Deinen Quellcode validieren ...

      »»

      Das ist das erste Mal, das ich was in HTML mache, ich wusste nicht, dass man  forms nicht verschachteln darf.

      »» Wenn nun jemand auf diesen button klickt soll die eingabe aus dem eingabefeld per get an einen iframe geschickt und dann angezeigt werden, das funktioniert auch soweit.

      Wie genau "funktioniert das"? Hast Du den Namen des Ziel-<iframe> als http://de.selfhtml.org/html/formulare/definieren.htm#zielfenster@title=Zielfenster angegeben?

      Mein form sieht so aus:

      <form action="" method = "get" target="neue_schlagwoerter">
      <input id="schlagw" type="text" name="schlagw_parameter"/>
      <input id="schlagw_button" type="submit" value="Hinzufügen">

      und der iframe:

      <iframe width = "0" height="0" frameborder="0" name="neue_schlagwoerter">

      »» Das Problem ist nur, dass die Seite immer wieder neu läd,

      Was meinst Du mit "neu lädt"? Liegt das vielleicht daran, dass Du eben kein Zielfenster (s.o.) angegeben hast? Dann ist doch klar, dass das aktuelle Formular abgeschickt und im aktuellen Fenster das Ergebnis des das Formular verarbeitenden Skript zu sehen ist ... wieso sollte es auch anders sein?

      Es geht hierbei darum Schlagwörter zu einem Buch hinzuzufügen.
      Hierbei befindet man sich auf einer Seite, auf der man auch alle anderen Angaben zum Buch ändern kann.
      Ich möchte jetzt, dass man ein Schlagwort eingeben kann auf "Hinzufügen" klickt und dieses dann in einem Textfeld o.ä. angezeigt wird.
      Man soll nicht jedesmal das gesamte Formular mit allen Änderungen abschicken müssen, wenn man ein Schlagwort hinzufügen will.
      Das habe ich auch mit "mehrere Wörter nacheinander" gemeint.
      Man soll ein schlagwort eingeben, auf hinzufügen klicken, dann noch eins eingeben, wieder auf hinzufügen klicken etc.
      Wenn man dann alle hinzugefügt hat, kann man das gesamte form abschicken und die eingegeben schlagworte sollen gespeichert werden.
      Wenn die Seite jedesmal neu läd gehen diese Informationen aber immer wieder verloren.
      In einem anderen Forum habe ich folgendes gelesen:

      "Im Form-Tag sollte das 'target'-Attribut definiert sein:

      <form action="blabla" target="name_des_iframes">

      Wenn der User auf den Submit-Button klickt, dann wird das Formular durch das iFrame geschickt und das Hauptfenster muss nicht neu geladen werden."

      Ich habe versucht, dass so umzusetzen, aber das klappt nicht.

      »» Es muss doch möglich sein, mehrere Wörter nacheinander abzuschicken, ohne das immer gleich die ganze seite neu geladen wird.

      Muss es? Was genau bedeutet "mehrere Wörter nacheinander abschicken"? Welches Verhalten hättest Du gern?

      »» Ich hab es schon mit form action="", form action="#" und form action="aktuelleseite.php" probiert.

      Probieren bringt in der Regel relativ wenig. Was das "http://de.selfhtml.org/html/referenz/attribute.htm#form@title=action"-Attribut enthalten sollte, ist klar definiert.

      »» Ich will die Daten danach ja noch weiterverwenden und wollte sie deswegen eigentlich erstmal in einem array speichern und erst, wenn das gesamte (größere) form abgeschickt wird, wollte ich diese Daten endgültig in der DB speichern.

      In was für einem Array? Du solltest Deinen Lesern mehr Informationen geben, damit sie Dir helfen können. Eine Beispielseite wäre bei dem Komplexitätsgrad auch nicht schlecht ...

      Ich würde gerne ein String-Array (in php) machen, in das ich alle Schlagwörter speichere damit ich nach dem absenden die Schlagwörter einzeln mit Hilfe einer Schleife in der DB speichern kann.

      MfG,
      EKKi

      Danke für die Hilfe,
      ansch

  2. Hi,

    warum schickst du nicht einfach deine Elemente als hidden-Input Feld weiter. Dann haste die auf der nächsten Seite.

    vg