tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
740
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    godfather_al godfather_al ist offline Mitglied Bronze
    Registriert seit
    Jan 2007
    Beiträge
    41
    Hallo zusammen,

    Habe ein Formular mit 4 Auswahlfeldern, bei dem jeweils sobald der Benutzer ein Auswahlfeld markiert (geändert) hat eine Tabelle aus einer MySQL Datenbank per PHP entsprechend geschrieben werden soll. Das habe ich bislang nur anhand der PLZ gesteuert, doch es scheint insofern nicht zu funktionieren, als dass die $_POST['submit'] offenbar leer bleibt beim submitten, weil gar keine Tabelle erzeugt wird

    Habe schon jede Menge gelesen und rumprobiert mit getelementbyid und submit etc, aber finde einfach keine funktionierende Lösung, wer kann mir helfen?

    Viele Dank vorab für Eure Tipps.

    Al

    PHP-Code:
        session_start();

        

        echo
    "
          <div id=\"inhalt\">

          <div id=\"top1\">Auswahl</div>

          <div id=\"auswahl\">

          <form name=\"formular3\" action=\"index3.php?id=schueler&top=2\" method=\"post\" >

          <select name=\"subject\" size=\"1\">

        "
    ;



        include 
    'config.inc.php';



        
    $sql "SELECT * FROM portal_subjects ORDER BY id ASC";

        
    $res mysql_query($sql) or die (mysql_error());



        while (
    $row mysql_fetch_assoc($res)){


          if (
    $row["subject"] == $_POST[subject]) {
            echo
    "

              <option selected>
    {$row["subject"]}</option>

            "
    ;
          }

          else {
            echo
    "

              <option>
    {$row["subject"]}</option>

            "
    ;
          }
        }


        
    mysql_free_result($res);


        echo
    "
          </select><br/><br/>

          <select name=\"grade\" size=\"1\">

        "
    ;



        
    $sql "SELECT * FROM portal_grades ORDER BY id ASC";

        
    $res mysql_query($sql) or die (mysql_error());



        while (
    $row mysql_fetch_assoc($res)){

          echo 
    "

            <option>
    {$row["grade"]}</option>

          "
    ;

        }


        
    mysql_free_result($res);


        echo
    "
          </select><br/><br/>

          <select name=\"bundesland\" size=\"1\"><option>Bundesland ausw&auml;hlen</option>

        "
    ;



        
    $sql "SELECT DISTINCT bundesland FROM portal_items ORDER BY bundesland ASC";

        
    $res mysql_query($sql) or die (mysql_error());



        while (
    $row mysql_fetch_assoc($res)){

          echo 
    "

            <option>
    {$row["bundesland"]}</option>
          "
    ;

        }


        
    mysql_free_result($res);

        echo
    "
          </select><br/><br/><select name=\"plz\" size=\"1\" onchange=\"los(this.form)\" ><option>Region ausw&auml;hlen</option>
        "
    ;


        
    $sql "SELECT DISTINCT plz FROM portal_items ORDER BY plz ASC";

        
    $res mysql_query($sql) or die (mysql_error());



        while (
    $row mysql_fetch_assoc($res)){

    if (
    $row["plz"] == $_POST[plz]) {
            echo
    "

              <option selected>
    {$row["plz"]}</option>

            "
    ;
          }

          else {
            echo
    "

              <option>
    {$row["plz"]}</option>

            "
    ;
          }

        }


        
    mysql_free_result($res);

        
        echo
    "
          </select><br/><br/>

          

          </form></div>
        "
    ;

       

        if (
    $_POST['submit']) {

          echo
    "
            <div id=\"dozentenliste\"><table width=750>  

            <tr>

            <th>Name</th>

            <th>PLZ</th>

            <th>Email</th>

            <th>Telefon</th>

            </tr>
         "
    ;



        
    $sql "SELECT * FROM portal_items WHERE plz = '$_POST[plz]'"

        
    $res mysql_query($sql) or die (mysql_error());



        while (
    $row mysql_fetch_assoc($res)){

          echo 
    "

            <tr>

            <td>
    {$row["name"]}</td>

            <td>
    {$row["plz"]}</td>

            <td>
    {$row["email"]}</td>

            <td>
    {$row["tel"]}</td>

            </tr> 

          "
    ;

        }  


        echo
    "
          </table></div>

          <div id=\"topdozentenliste\">Interessante Dozenten f&uuml;r Sie</div></div>

          <div id=\"fuss\"></div>

          <div id=\"inhalt_rechts\"></div>

        "
    ;


        
    mysql_free_result($res);

        exit;

        }



        echo
    "

          <div id=\"topdozentenliste\">Interessante Dozenten f&uuml;r Sie</div>

        
          <script type=\"text/javascript\">
          function los () {
          document.formular3.submit();
          }
          </script>
        "

     

  2. #2
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Ich sehe nirgendwo ein Element mit dem Namen "submit".

    Aber das fällt in der Mischung aus PHP, HTML und JavaScript auch nicht leicht.
     

  3. #3
    godfather_al godfather_al ist offline Mitglied Bronze
    Registriert seit
    Jan 2007
    Beiträge
    41
    Hi Poly,

    ja das stimmt ist leider recht gemischt

    Habe jetzt nur im Skript ein submit:

    <script type=\"text/javascript\">
    function los () {
    document.formular3.submit();
    }
    </script>
    weil ich gelesen habe dass das Formular kein "Submit" Element haben darf wenn man es via Javascript abschickt.

    Hast Du einen Tipp was man hier machen kann damit das so funktioniert wie gewollt?

    Viele Grüße
     

  4. #4
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Du verstehst nicht ganz.

    PHP-Code:
    $_POST['submit'
    ist kein magischer Wert, der angibt, ob das Formular gesendet wurde, sondern ein ganz normaler Wert, welcher vom Element mit dem Namen "submit" versendet wurde.

    Nimm einfach

    PHP-Code:
    if ($_POST['plz']) 
    Zitat Zitat von godfather_al Beitrag anzeigen
    weil ich gelesen habe dass das Formular kein "Submit" Element haben darf wenn man es via Javascript abschickt.
    Ganz im Gegenteil. Es sollte unbedingt einen Submit-Button haben, damit es auch ohne JavaScript funktioniert. Du solltest ihn dann mittels JavaScript aber unsichtbar machen, damit es für Leute mit JavaScript so funktioniert, wie du es im Moment gedacht hast (bei onchange) und Leute ohne JS müssen eben nach dem auswählen noch auf den Button klicken. Wenn du es so löst, kannst du auch wieder auf "$_POST['submit']" prüfen.
     

  5. #5
    godfather_al godfather_al ist offline Mitglied Bronze
    Registriert seit
    Jan 2007
    Beiträge
    41
    Hi CPoly,

    bin jetzt schon einen Schritt weiter durch die Änderung

    if ($_POST['plz'])
    Allerdings wird die Tabelle jetzt nur beim ersten Mal wenn ich über das Auswahlfeld eine plz auswähle geschrieben, wenn ich die PLZ dann zum zweiten Mal ändere wird die Tabelle nicht aktualisiert Hast Du eine Idee woran das liegt?

    Sorry bin echt noch sehr neu auf dem Gebiet hier aber auf jeden Fall lernwillig und -fähig

    Viele Grüße
     

  6. #6
    hoctar hoctar ist offline Mitglied Brokat
    Registriert seit
    Jun 2007
    Beiträge
    344
    Also du wählst eine PLZ aus und die Tabelle läd sich, soweit richtig?
    Dann wählst du eine andere PLZ aus und die Tabelle läd sich nicht?
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.10.09, 16:31
  2. Antworten: 1
    Letzter Beitrag: 27.07.09, 00:52
  3. $_POST Array vom Submit Button
    Von son gohan im Forum PHP
    Antworten: 5
    Letzter Beitrag: 01.04.06, 10:28
  4. formular mit $_POST über link abschicken ?
    Von Stephan Liebig im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 04.03.06, 12:43
  5. Formular / submit / php :/ plz help !
    Von bkt im Forum HTML & XHTML
    Antworten: 6
    Letzter Beitrag: 30.03.04, 23:04