Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] POST-Anfrage wird nicht beachtet

Einklappen

Neue Werbung 2019

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

  • [Erledigt] POST-Anfrage wird nicht beachtet

    Hey Ihr,

    Mal wieder ein Problem mit einem Stück Code, den ich eigentlich nur ergänzen soll. Es handelt sich hierbei um ein Online-Formular, bei dem Schüler eintragen können, welche Zeugnisse sie abgegeben haben. Haben sie es abgegeben, können sie eine Checkbox aktivieren und in einer SQL-Datenbank wird dieser Zustand gespeichert, beim erneuten Aufrufen des Formulars ist die Checkbox aktiviert und die Bezeichnung des Zeugnisses grün.

    Das funktioniert soweit auch ... allerdings nicht beim Hinzufügen des neuen Zeugnisses mit der Array-Nummer 0. Ich dachte erst, dass er Probleme hat mit der "0", allerdings wird das Zeugnis "hinzugefügt", löschen kann ich es allerdings nicht mehr. Mit allen anderen Zeugnissen (sprich 1-5) funktioniert das jedoch problemlos.

    Irgendwie führt er bei Array $checked[0] bzw. der damit verbundenen POST-Befehle das "if($_POST['entferne']) gar nicht erst durch.

    Hier der Code:
    PHP-Code:
                      // anzeigen der zeugnisse mit editierfunktion
                 
    if($_GET['part'] == "zeugn"){

                     if(
    $_POST['entferne']){ // WIRD BEI "ID 0" NICHT BEACHTET
                        
    if($_POST['entferne'] ==  "nein"){
                            
    $subsql "UPDATE lpb_zeugnisse SET Status = '1' WHERE Personalnummer = '" $_POST['pers_nr'] . "' AND Zeugnis = '" $_POST['box'] . "'";
                            
    mysql_query($subsql);
                            echo 
    "TUTUT";
                        }
                        else{
                            
    $subsql "UPDATE lpb_zeugnisse SET Status = '0' WHERE Personalnummer = '" $_POST['pers_nr'] . "' AND Zeugnis = '" $_POST['entferne'] . "'";
                            
    mysql_query($subsql) OR die(mysql_error());
                            echo 
    "TUTUT2";
                        }
                     }
                         echo 
    "<tr class=termine_tr><td>";
                                 echo 
    "<table width=100% class=termine_zeug>";
                                         echo 
    "<tr>";
                                                 echo 
    "<td class=termine_daten>";
                                                         for(
    $i=0;$i<=5;$i++){
                                                                 
    $sql "INSERT INTO lpb_zeugnisse (Personalnummer, Zeugnis, Status) VALUES ('$pers_nr', '$i', '0');";
                                                                 
    mysql_query($sql);
                                                         }

                                                         echo 
    "<table width=100% class=zeugnisse_daten><tr><td width=20%>";
                                                         
    $sql "SELECT Status FROM lpb_zeugnisse WHERE Personalnummer = '$pers_nr'";
                                                         
    $result mysql_query($sql);
                                                         
    $k 0;
                                                         while(
    $row mysql_fetch_assoc($result)){
                                                                 if(
    $row['Status'] == 1){
                                                                         
    $eins[$k] = "#22bb22";
                                                                              
    $checked[$k] = " checked";
                                                                 }
                                                                 else{
                                                                         
    $eins[$k] = "#000000";
                                                                              
    $checked[$k] = "";
                                                                 }
                                                                 
    $k++;
                                                              }
                                                              echo 
    "<form class=bh_form action='lernprozessbegleitung.php?site=controlling&sub=org&part=zeugn&azubi=$pers_nr' method=post>";
                                                              echo 
    "\n\n<input type=checkbox name='box' value='0' onchange='this.form.submit()'" $checked[0] . ">";
                                                              echo 
    "<input type=hidden name='pers_nr' value='$pers_nr'>";
                                
    // ID 0                              
                                                              
    if($checked[0] == " checked"){
                                                                   echo 
    "<input type=hidden name='entferne' value='0'>";
                                                              }
                                                              else{
                                                                   echo 
    "<input type=hidden name='entferne' value='nein'>";
                                                              }
                                                              echo 
    "</form>";
                                                              echo 
    "<font color='" $eins[0] . "'>1. Ausbildungsjahr - Halbjahresinformation</font><br>";
                                                              
                                                              echo 
    "<form class=bh_form action='lernprozessbegleitung.php?site=controlling&sub=org&part=zeugn&azubi=$pers_nr' method=post>";
                                                              echo 
    "\n\n<input type=checkbox name='box' value='1' onchange='this.form.submit()'" $checked[1] . ">";
                                                              echo 
    "<input type=hidden name='pers_nr' value='$pers_nr'>";
                                                              
                                                              if(
    $checked[1] == " checked"){
                                                                   echo 
    "<input type=hidden name='entferne' value='1'>";
                                                              }
                                                              else{
                                                                   echo 
    "<input type=hidden name='entferne' value='nein'>";
                                                              }
                                                              echo 
    "</form>";
                                                              echo 
    "<font color='" $eins[1] . "'>1. Ausbildungsjahr - Abschlusszeugnis</font><br><br>";
                                                              echo 
    "<form class=bh_form action='lernprozessbegleitung.php?site=controlling&sub=org&part=zeugn&azubi=$pers_nr' method=post>";
                                                              echo 
    "\n\n<input type=checkbox name='box' value='2' onchange='this.form.submit()'" $checked[2] . ">";
                                                              echo 
    "<input type=hidden name='pers_nr' value='$pers_nr'>"
    Tabelle sieht so aus:

    Zeugnis|Status
    ---------------
    0 | 1
    1 | 0
    2 | 0
    3 | 0
    4 | 0
    5 | 0

    Wobei Status 0 für nicht abgegeben, 1 für abgegeben steht. Entschuldigt, dass der Quelltext nicht so prall kommentiert und formatiert ist. Wie gesagt: Ich soll den nur um ein "Zeugnis" erweitern :/

  • #2
    kannste du vielleicht mal kommentieren wo genau im Quellcode das Problem liegt?

    Kommentar


    • #3
      done ... habe auch noch gekennzeichnet, was ich bei dem Fehler-Kommentar meine

      Hier fängts an:

      PHP-Code:
                      // anzeigen der zeugnisse mit editierfunktion
                   
      if($_GET['part'] == "zeugn"){

                       if(
      $_POST['entferne']){ // WIRD BEI "ID 0" NICHT BEACHTET
                          
      if($_POST['entferne'] ==  "nein"){ 

      Kommentar


      • #4
        also wenn $_POST['entferne'] == 0 ist?ist klar denn damit wird die bedingung nicht erfüllt.

        Kommentar


        • #5
          ahhh du suchst [MAN]isset[/MAN]

          Kommentar


          • #6
            Z.B.
            PHP-Code:
            if(!empty($_POST['entferne'])){ 
            So wie du auf false/true abfrägst, wird 0 als false interpretiert.

            Zitat von madeoutofdreams
            Entschuldigt, dass der Quelltext nicht so prall kommentiert und formatiert ist
            Und wir sollen das dann zuerst formatieren, um es lesen zu können?

            Kommentar


            • #7
              erledigt, hier schreiben einige schneller als ich ^^

              if ($_POST['entferme'] >=0) oder if (isset($_POST['entferne']))

              Kommentar


              • #8
                Das Problem ist aber, ich kann das Zeugnis 0 hinzufügen und es wird auch in der SQL-Tabelle gespeichert, nur löschen geht dann nichtmehr.

                *edit*

                if(isset($_POST['entferne'])){ hat geklappt.

                Thread kann geschlossen werden!

                Kommentar

                Lädt...
                X