$_POST['submit'] bleibt leer beim Formular Abschicken mit submit()

godfather_al

Mitglied
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:
    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>
    ";
 
Ich sehe nirgendwo ein Element mit dem Namen "submit".

Aber das fällt in der Mischung aus PHP, HTML und JavaScript auch nicht leicht.
 
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
 
Du verstehst nicht ganz.

PHP:
$_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:
if ($_POST['plz'])

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.
 
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
 
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?
 
Zurück