Radiobutton-Eingabe mit PHP überprüfen

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

  • Radiobutton-Eingabe mit PHP überprüfen

    Hallo!

    Habe Radiobuttons und Auswahllisten in einem HTML-Formular erstellt, die nach dem Absenden durch ein PHP-Skript auf eine Eingabe überprüft werden sollen. Wenn nicht alles eingegeben wurde, soll das Formular wieder erscheinen, wobei die eingetragenen Werte übernommen werden.

    Radiobuttons in HTML:
    Wie oft haben Sie die Lehrveranstaltung besucht?<br>
    <input type="Radio"
    name="Anwesenheit" value="immer"checked>immer<br>
    <input type="Radio" name="Anwesenheit" value="oft"checked>oft<br>
    <input type="Radio" name="Anwesenheit" value="selten"checked>selten<br>

    und im PHP-Skript:
    //Wenn nicht alle Daten eingegeben wurden, wird Funktion zeigFormular aufgerufen
    if((!$_POST[Lehrveranstaltung]) or (!$_POST[Semester]) or (!$_POST[Anwesenheit]) or (!$_POST[Bewertung]) or (!$_POST[Eigenschaften]))
    zeigFormular();

    function zeigFormular() {
    $_SERVER['PHP_SELF'];
    # global $Lehrveranstaltung, $Semester, $Anwesenheit, $Bewertung, $Eigenschaften;

    echo '<pre><form action="' . $PHP_SELF .'" method="POST">';

    <input type="radio" name="Anwesenheit" value="immer"
    <?php if ("immer" == $_POST['Anwesenheit']) echo " checked"; ?>>
    <input type="radio" name="Anwesenheit" value="oft"
    <?php if ("oft" == $_POST['Anwesenheit']) echo " checked"; ?>>
    <input type="radio" name="Anwesenheit" value="selten"
    <?php if ("selten" == $_POST['Anwesenheit']) echo " checked"; ?>>

    Beim PHP-Skript wird mir an der Stelle ein parse-error gemeldet.
    Genauso wie bei den Auswahllisten:
    in HTML:
    <select name="Lehrveranstaltung" size="3">
    <option selected>Angewandte Informatik</option>
    <option selected>Kommunikation</option>
    <option selected>Retrieval</option>
    </select>

    im PHP-Skript:
    <select name="Lehrveranstaltung" option="Angewandte Informatik"
    <?php if ("Angewandte Informatik" == $_POST['Lehrveranstaltung']) echo " selected"; ?>>
    <select name="Lehrveranstaltung" option="Kommunikation"
    <?php if ("Kommunikation" == $_POST['Lehrveranstaltung']) echo " selected"; ?>>
    <select name="Lehrveranstaltung" option="Retrieval"
    <?php if ("Retrieval" == $_POST['Lehrveranstaltung']) echo " selected"; ?>>

    Weiß jemand, was daran falsch ist?

    Viele Grüße,
    Katherina
    Zuletzt geändert von Kay008; 16.02.2004, 02:35.

  • #2
    !$_POST['foo'] is doch glaub ich nur true wenn die variabel net da is... aber das is sie... halt nur leer... versuchsmal lieber mit
    PHP-Code:
    empty($_POST['foo']); 
    da weis man sicher wann was is
    Man lernt nie aus...

    ...und wenn man's doch tut braucht man sich auch nicht schämen!

    Kommentar


    • #3
      Hallo,

      inzwischen sieht mein Code so aus. Allerdings scheint noch ein Fehler da zu sein, bei der Wertzuweisung der Variable $key.
      hat jemand eine Ahnung, warum?

      Vielen Dank schon im Voraus,
      Grüße, Katherina

      PHP-Code:

      //Zeigt Formular an
      function zeigFormular() {
      $_SERVER['PHP_SELF'];
      # global $Semester;

      echo '<pre><form action="' . $PHP_SELF .'" method="POST">';


      echo 'Semester: <input type="Text" name="Semester" value="' . $_POST[Semester] . '"><br>';




      function check_selected($key,$value, $type)
      {
      //HTML-Name des/r Radio-Buttons/Checkbox/Pulldown-Menu

      AB HIER PARS-ERROR

      $key = Lehrveranstaltung,Anwesenheit,Bewertung,Eigenschaften;

      //Wert der Option/des Radio-Buttons
      $value = Angewandte Informatik,Kommunikation,Retrieval,immer,oft,selten,sehr gut,gut,
      mittelmäßig,weniger gut,überhaupt nicht,Freundlichkeit,Fragen,fachliche Kompetenz,
      didaktische Kompetenz,Frisur,Kleidungsauswahl,Witze,Lächeln,Pausen,nichts;



      //Typ des Eingabefeldes: Radio/Checkbox || Pulldown/Auswahlliste
      $type = radio,select;

      // Der Wert der vom Benutzer ausgewählten Variablen steht im $_POST-Array

      global $_POST[Lehrveranstaltung], $_POST[Anwesenheit], $_POST[Bewertung], $_POST[Eigenschaften]; // als global erklären, damit wir die gewünschte Variable auslesen können

      // Typ des Feldes herausfinden (Radio/Checkbox || Auswahlliste/Pulldown

      switch ($type)
      {
      case 1: // Radio-Buttons und Checkboxes
      $sel = " checked";
      break;
      case 2: // Pulldown-Menus
      $sel = " selected";
      break;
      }

      // Wertevergleich

      if($_POST[$key] == $value)
      {
      echo $sel;
      }

      }



      <select name="Lehrveranstaltung" size="3">
      <option value="Angewandte Informatik"
      <?php check_selected("Lehrveranstaltung""Angewandte Informatik"2); ?>>Angewandte Informatik</option>
      <option value="Kommunikation"
      <?php check_selected("Lehrveranstaltung""Kommunikation"2); ?>>Kommunikation</option>
      <option value="Retrieval"
      <?php check_selected("Lehrveranstaltung""Retrieval"2); ?>> Retrieval </option>
      </select>




      <input type="radio" name="Anwesenheit" value="immer"
      <?php check_selected("Anwesenheit""immer"1); ?>> immer</br>
      <input type="radio" name="Anwesenheit" value="oft"
      <?php check_selected("Anwesenheit""oft"1); ?>> oft </br>
      <input type="radio" name="Anwesenheit" value="selten"
      <?php check_selected("Anwesenheit""selten"1); ?>> selten </br>


      (Im HTML-Formular sehen jetzt die Auswahlliste+Radiobuttons so aus:

      <select name="Lehrveranstaltung" size="3">
      <option selected>Angewandte Informatik</option>
      <option selected>Kommunikation</option>
      <option selected>Retrieval</option>
      </select>

      <input type="Radio" name="Anwesenheit" value="immer"checked>immer<br>
      <input type="Radio" name="Anwesenheit" value="oft"checked>oft<br>
      <input type="Radio" name="Anwesenheit" value="selten"checked>selten<br>
      Zuletzt geändert von Kay008; 17.02.2004, 19:58.

      Kommentar


      • #4
        erstmal das hier: http://selfhtml.teamone.de/html/form...ahl.htm#listen

        dann das: http://selfhtml.teamone.de/html/form...m#radiobuttons

        dann das:http://www.php.net/manual/de/

        dann schauen wir mal weiter. Ist ja grauenvoll dein Code

        Kommentar


        • #5
          Ich weis nicht, ob ich damit richtil liege, aber probier doch mal $HTTP_POST_VARS[] statt $_POST[]

          Grüße, Andi

          Kommentar


          • #6
            Okay, habe die Lösung gefunden, so klappt's!:-)
            Ciao, Katherina

            PHP-Code:
            <?
            echo "<HTML><BR>\n";

            echo '<form action="' . $_SERVER['PHP_SELF'] .'" method="POST">';

            echo '<input type="radio" name="Anwesenheit" value="immer"';
              if (isset($_POST['Anwesenheit']) && $_POST['Anwesenheit'] == "immer") {
                echo " checked";
              }
            echo '>immer<BR>';
            echo '<input type="radio" name="Anwesenheit" value="oft"';
              if (isset($_POST['Anwesenheit']) && $_POST['Anwesenheit'] == "oft")
                echo " checked";
            echo '>oft<BR>';
            echo '<input type="radio" name="Anwesenheit" value="selten"';
              if (isset($_POST['Anwesenheit']) && $_POST['Anwesenheit'] == "selten")
                echo " checked";
            echo '>selten<BR>';
            echo '<input type="submit" name="abschicken" value="abschicken"</form>';

            echo '<BR>eingegeben wurde: ';
            if (isset($_POST['Anwesenheit']))
             echo $_POST['Anwesenheit'];
            else
             echo "NIX!";

            echo "</HTML>";

            ?>

            Kommentar

            Lädt...
            X