Alexander: Formular, PHP und JS

Hallo zusammen,

es ist Freitag und ich steh voll auf dem Schlauch. Ich habe auf einer HTML-Seite ein Formular. Wenn ich das Formular abschicke, soll per PHP der Inhalt des Formulars in eine DB eingetragen werden. Gleichzeitig soll sich der Inhalt des Formulars/die Seite resetten und ein Danke-Fenster aufpoppen.

Mit ginge es um letzteres: Reset der Seite und Popupfenster. Mein Formulartag sieht so aus:

<form action="test.php" method="post">

Wie gehts weiter????

Bitte um Hilfe...

Gruß,
Alexander

  1. <form action="test.php" method="post">
    Wie gehts weiter????

    hast du php programmier erfahrung ?? wenn nicht wirds schwer, da würde ich www.php.net und die documentation empfehlen...

    ansonsten könnte es so weiter gehen:

    die form datei

    <html><body>
    <form action="process.php" method="post">
    <input type="text" name="username">
    <input type="submit" name="submit">
    </form>
    </body></html>

    die process datei "process.php"

    <html><body>
    <?php
     if (!$username=="")
      {
       $db=mysql_connect();
       mysql_select_db("your_db_name_here",$db);
       $query="insert your_table_name_here (user) values ('$username')";
       $res=mysql_query($query,$db);
       $num=mysql_num_rows($res);
       mysql_close($db);
       if (!$num=0) echo "wurde in db eingetragen"; else echo "fehler!";
      }
     else echo "dann eben nicht\t\n";
    ?>
    </body></html>

    l8rz
    jeff

    1. achja, habe vergessen, der code geht davon aus, das mysql lauffähig installiert ist und ein webserver installiert ist. und beide sollten auf der selben ip adresse ansprechbar sein (oder localhost zum testen).

      wie gesagt weiterführende links wären

      http://www.mysql.com
      http://www.php.net

      und

      auf amazon.de einfach "php" eingeben und ein paar bücher bestellen ;)

      l8rz
      jeff

  2. Servus,

    <form action="test.php" method="post">

    <form action="test.php" method="post" onSubmit="resetPopup()" name="PHPEingabe">

    mit OnSubmit rufst eine JavaScript Funktion namens resetPopup() auf, die dann die Eingaben löscht.

    Folgender Code steht im <head>:
    <script language="JavaScript" type="text/javascript">
    <!--
    function resetPopup()
    {
    document.forms.PHPEingabe.reset();
    window.open("datei.htm","Fenster2","width=310,height=400,left=320,top=0");
    }
    //-->
    </script>

    Das Aussehen des Fensters (Größe, Button-Leiste, Statusleiste etc.) kannst Du durch ändern der Attribute verändern. Schau das mal in SelfHTML an.

    Ach ja, falls das PHP-Script die "Bestätigungseite" zurückliefert, einfach "datei.htm" weglasssen und im <form>-Tag target="Fenster2" einfügen.

    Viele Grüße

    Alex ;)

    1. Hallo Alexander :-)

      Ach ja, falls das PHP-Script die "Bestätigungseite" zurückliefert, einfach "datei.htm" weglasssen und im <form>-Tag target="Fenster2" einfügen.

      Es tut sich was... ich habe jetzt im Head stehen:
      <!--
      function resetPopup()
      {
      document.forms.formname.reset();
      window.open("Fenster2","width=310,height=400,left=320,top=0");
      }
      //-->
      </script>

      und im Formtag steht:
      <form action="?php echo($PHP_SELF); ?" method="post" name="formname" onSubmit="resetPopup()" target="Fenster2" >

      Jetzt öffnet sich halt ein zweites resiztes Fenster mit demselben Inhalt wie die Formularseite... das wollte ich aber nicht ;-) Sondern eine andere Seite. Ich hab zwar schon rumprobiert, aber die danke.html lässt sich nicht ansteuern.

      Nochn Tip?!?

      Vielen Dank erstmal
      Alexander

      1. Hi,

        also, die Frage, die Du zuerst mal beantworten mußt, ob die "Danke-Seite" vom PHP-Script (was natürlich bei auf'm Server einsatzbereit liegen muß - und auch ist, oder?) zurückgeliefert wird, oder ob Du eine statische, d.h. schon feste unveränderlich Seite anzeigen möchtest.

        Wenn Du eine statische Seite anzeigen lassen möchtest, schau Dir das Beispiel an:

        Da, wo DATEI.HTML steht (im JavaScript), trägst Du einfach die URL der Danke-Seite ein. Dann sollte es klappen:

        <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
        <html>
        <head>
        <title>Blablabla</title>
        <script language="JavaScript" type="text/javascript">
        <!--
        function resetPopup()
        {
        document.forms.PHPEingabe.reset();
        window.open("DATEI.HTML","Fenster2","width=310,height=400,left=320,top=0");
        }
        //-->
        </script>
        </head>
        <body>
        <form action="test.php" method="post" onSubmit="resetPopup()" name="PHPEingabe">...</form>
        </body>
        </html>

        Wenn das PHP-Script eine Danke-Seite zurückliefert (ist die sinnvollerere Methode, da so auch eventuelle Fehler angezeigt werden können, nimm einfach folgendes Bsp.:

        <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
        <html>
        <head>
        <title>Blablabla</title>
        <script language="JavaScript" type="text/javascript">
        <!--
        function resetPopup()
        {
        document.forms.PHPEingabe.reset();
        window.open("","Fenster2","width=310,height=400,left=320,top=0");
        }
        //-->
        </script>
        </head>
        <body>
        <form action="test.php" method="post" onSubmit="resetPopup()" name="PHPEingabe" target="Fenster2">...</form>
        </body>
        </html>

        Im zweiten Bsp. öffnest Du nach dem Senden ein Fenster ("erstmal" ohne Inhalt), wo dann die Rückgabeseite des PHP-Scriptes zu sehen sein sollte.

        Kannst ja mal eine Test-URL posten.

        Viele Grüße...

        Alex :)

  3. Hi Alexander,

    Zum schluss Deines PHP codes auf der test.php Seite kannst Du folgendes Javascript mit echo schreiben lassen, dass linkt dich zurueck zur Form, sobald die Forminhalte verarbeitet worden sind:

    echo "<script language="Javascript">window.location.href="form.html?dank=1";</script>";

    Beachte dass an der URL jetzt eine Variable haengt namens "Dank" haengt.
    Auf der Seite Form.html brauchst Du dann ein Javascript dass checkt ob diese  Variable an der URL haengt, zB ansatzweise mit :

    var querystring = location.search.substring(1,location.search.length);
    ...

    Und wenn diese Variable dranhaengt, mit window.open dass popup oeffnen.

    Gruss, Mel