Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular Ausführen und Weiterleiten

Einklappen

Neue Werbung 2019

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

  • Formular Ausführen und Weiterleiten

    Hallo zusammen. Ich habe schon einiges gesucht, aber mein Problem ist doch etwas speziell, deswegen versuch ich das ganze doch mal zu erläutern.

    Also, generell binde ich meine "Unterseiten" per Javascript ein, d.h. es gibt eine index.php in der folgender JS Code steht
    Code:
    function paging(num)
    {  
    
      if (num == 0) $("#content").load("start.php");
      else if (num == 1) $("#content").load("angebote.php");
      ....
      return false;
    }
    Die Links dazu, die diese Funktion aufrufen:
    PHP-Code:
    <a href="" onclick="return paging(0)">Home</a>
    <
    a href="" onclick="return paging(1)">Angebote</a
    Und das Div in das, die Seite geladen wird:

    PHP-Code:
    <div id="content">
      <?php include('start.php');  ?>
      </div>
    Auf einer Unterseite z.B: angebote.php möchte ich jetzt ein Formular ausführen, das in eine SQL-Datenbank schreibt:
    PHP-Code:
     <h2>Neuer News-Eintrag</h2>
     <
    form method="post" action="angebote.php">
     <
    label>Datum:</label> <input type="datetime" value="2008-10-01T20:15:00Z" style="width:17.65em" name="news_date"><br />
    <
    label>Titel:</label> <input type="text" style="width:17.65em" name="news_titel"><br />
        <
    label>Text:</label> <input type="text" style="width:17.65em" name="news_inhalt"><br /> 
        <
    input name="button" type="submit" value="Eintragen">
        </
    form
    jetzt wird logischerweise beim Klicken auf Submit nicht die Seite eingebunden in der Index gezeigt, sondern nur die Seite "angebote.php" direkt aufgerufen.
    Lass ich die "action=.." weg, dann lädt es direkt auf die Startseite, das Formular wird aber nicht richtig ausgeführt.

    Also was ich gerne hätte ist, dass wieder die Unterseite auf der index.php eingebunden wird mit "return paging(1)" .
    allerdings weiß ich nicht , wie ich das umsetzen kann.
    wo und wie kann ich die Funktion aufrufen, dass nach dem ordentlichen Ausführen von "Submit", dann diese Seite so geladen wird?

    Hat jemand eine Idee?

    Header("Location:...") funktioniert auch nicht, da ich ja auf der Index.php die unterseite einbinde.... also nicht direkt einen link habe.


  • #2
    Code:
    <form .. onsubmit="return formhandler(this)">
    </form>
    
    function formhandler(form) {
      $.post(
        form.attr('href'),
        $.serialize(form),
        function(response) {
          form.replaceWith('<div>Danke für deine Nachricht</div>');
        }
      });
    }
    (Beispielcode!)

    Also beim onsubmit-Event eine JS-Funktion aufrufen, das Formular per AJAX verschicken und danach tun was du willst.

    requires JQuery
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Kann damit nich so ganz viel anfangen...
      wie muss ich das anwenden? verstehs nich so, sorry

      Kommentar


      • #4
        Also ich erläuter das Problem nochmal:

        ich bekomm es hin, dass ich nach dem Eintrag direkt auf die Startseite (localhost) weitergeleitet werde, durch:

        PHP-Code:
         if(isset($_POST['button']))
          { ...
        header('Location: /');  

        Allerdings wird dann ja als "default-Wert" in mein <div = "content"> die start.php geladen.
        PHP-Code:
        <div id="content">
          <?php include('start.php');  ?>
          </div>
        das div wird ja durch die Links mit der java-script funktion verändert:

        PHP-Code:
        <a href="" onclick="return paging(0)">Home</a>
        <
        a href="" onclick="return paging(1)">Angebote</a
        Code:
        function paging(num)
        {  
        
          if (num == 0) $("#content").load("start.php");
          else if (num == 1) $("#content").load("angebote.php");
          ....
          return false;
        }
        jetzt würde ich aber bei der Weiterleitung gerne nicht die start.php da reinladen, sondern eine andere der Seiten.
        Gibt es Ideen wie ich das realisieren kann?

        Ich hoffe, das ist verständlich, was ich gerne möchte

        Kommentar


        • #5
          Chriz hat dir doch schon eine Lösung gepostet.
          http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29
          I like cooking my family and my pets.
          Use commas. Don't be a psycho.
          Blog - CoverflowJS

          Kommentar


          • #6
            die hab ich nicht so ganz verstanden, wie genau ich das implementieren muss...

            Kommentar

            Lädt...
            X