Bearbeitungs bzw. Löschen Button

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

  • Bearbeitungs bzw. Löschen Button

    Guten Morgen php Community,

    zu aller erst würde ich gerne sagen das ich sowohl in php als auch in diesem Forum "neu" bin und daher mein Code ein riesiges Chaos ist & mein Fachwissen relativ begrenzt.

    Zu meinem Problem:
    Ich habe mittels eines Php Formulars Daten an eine Postgresql Datenbank geschickt, welche in einer separaten php in Tabellenform ausgegeben werden. Soweit so gut. Nun habe ich in jeder Zeile einen Bearbeitungs und Löschen Button eingebaut, zuerst mal der Löschen Button. Ich hole mir die Daten aus meiner Datenbank mit pg_fetch_array speichere diese in einer Variablen namens $line und spreche die einzelnen IDs jeweils mit $line[id] an.Jede Tabellenspalte hat bereits ein hiddenfield mit der value=\"$line[id]\" & mittels meiner "löschenfunktion"
    PHP-Code:
    $weg "DELETE FROM meine_tabelle WHERE id = $_POST[id]";
            
    var_dump($weg);
            
    $result pg_query($weg);
            if (
    $_POST['loeschen'])
            {
                
    $result;    
            }
            
            echo 
    "</form>\n"
    würde ich gerne die Zeile rauslöschen, in der sich der Button befindet. Jedoch löscht jeder Button immer nur die letze Tabellenreihe, und das auch nur nach erneutem Doppelklick.. Hoffe ich habe mein Problem relativ verständlich ausgedrückt..

    MfG Me7z

  • #2
    Ein Formular und dutzende gleichnamige hidden fields?
    Und PHP sucht sich dann aus welches du meinen könntest
    Nee, es nimmt das letzte!


    Warum gibts du nicht dem Del-Button die ID mit?
    Wir werden alle sterben

    Kommentar


    • #3
      die hidden fields haben ja alle jeweils unterschiedliche "namen", nämlich die id der jeweiligen reihe... darauf habe ich schon geachtet. Es funktioniert !! Du bist mein Retter in der Not. Vielen Dank schonmal an dieser Stelle.
      Zuletzt geändert von Me7z; 19.09.2013, 09:20.

      Kommentar


      • #4
        ha das Problem war zwar aufs erste weg, jedoch heißen ja jetzt alle meine Löschen Buttons genau so wie die ID der Reihe und das war ja nicht beabsichtigt.. Die Buttons haben jetzt zwar die line id jedoch die value=löschen, welche von $_POST ja nicht ansprechbar sind oder ?...

        Kommentar


        • #5
          HTML-Code:
          <input type="submit" name="del[45]" value="Datensatz Löschen">
          Und an die ID (hier 45) kommst du dann z.B. mit array_keys() und array_pop()
          Wir werden alle sterben

          Kommentar


          • #6
            Erstmal Vielen Dank, dass du dir die Zeit für mich nimmst.. Nur leider kann ich array_keys bzw array_pop gerade irgendwie nicht zuordnen bzw fehlt mir der Denkansatz wie ich die "del'ids'" ansprechen soll... Möglicherweise kannst du mir noch eine kleine Hilfestellung geben, wäre dir sehr verbunden.

            MfG Me7z

            Kommentar


            • #7
              Aus meiner Wühlkiste:
              (leicht für deine Zwecke modifiziert)

              PHP-Code:
              <?php
              error_reporting
              (-1);
              ini_set('display_errors'TRUE);

              function 
              gib_mich_id($array)
              {
                
              $keys array_keys($array);
                return 
              array_pop($keys);



              if(!empty(
              $_POST['del']) && is_array($_POST['del']))
              {
                  
              $id gib_mich_id($_POST['del']);
                  echo 
              "Id $id wird gelöscht <br>";
              }



              ?>
              <form action="" method="post">
                <input type="submit" name="del[15]" value="Datensatz Löschen">
                <input type="submit" name="del[43]" value="Datensatz Löschen">
                <input type="submit" name="del[56]" value="Datensatz Löschen">
                <input type="submit" name="del[77]" value="Datensatz Löschen">
              </form>
              Wir werden alle sterben

              Kommentar


              • #8
                Super ! Vielen vielen Dank für dein ausführliche Hilfe! Habe es jedoch einige Sekunden vorher auf einen anderen Weg gelöst, welcher wäre:
                PHP-Code:
                echo "\t<td><input type=\"submit\" name=\"del[$line[id]]\"  value=\"Löschen\"></td>";
                        echo 
                "\t<td>$line[id]</td>\n";
                        echo 
                "\t</tr>\n";
                    }
                        echo 
                "</table>\n";
                        
                //var_dump($line[id]);
                        
                $buttonid key($_POST['del']);
                        
                        if (
                $_POST['del'])
                        {        
                            
                $weg "DELETE FROM meine_tabelle WHERE id = $buttonid";
                            
                $result pg_query($weg);                    
                        } 

                Trotzdem herzlichen Dank & einen schönen Tag.

                MfG Me7z

                Kommentar


                • #9
                  Die Verwendung von key() kann unerwartete Ergebnisse zeigen. Unter manchen PHP Versionen ist ein reset() vorher nötig.
                  Aber dann ist die Konstruktion gleichwertig.
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    Okay vielen Dank schonmal bzw nochmal für den Hinweis. Mein nächstes Problem ist der Bearbeitungsbutton... ich habe mir das so gedacht, das wenn man auf Bearbeiten klickt unter der Tabelle Textfelder erscheinen die mit dem jeweiligen Wert der Zeile vorselektiert sind, sprich wenn man in Zeile bearbeiten drückt, in der der Vorname Hans ist & der Nachname Mustermann werden unten diese beiden Namen in 2 verschiedenen Textboxen unter der Tabelle angezeigt. Mein Feld vorname sieht wie folgt aus:

                    PHP-Code:
                    echo "\t<td name=\"vorname$line[id]\">"$line[vorname] ."</td>\n"
                    und mein Plan war es, es so anzusprechen:


                    PHP-Code:
                    if ($_POST['edit'])
                            {
                                
                    //$eid = key($_POST['edit']);
                                
                    $vorname =$_POST['vorname'];
                                 
                    var_dump($vorname);
                                echo 
                    "\t<tr>\n";
                                echo 
                    "\t<td><input type=\"text\" name=\"vorname_neu\" value=\"$vorname\"></td>"
                    Das wirft jedoch einige Probleme auf....

                    es erscheint zwar ein Textfeld jedoch wird der Wert vorname nicht übergeben und var_dump gibt den Wert NULL aus.

                    Kommentar


                    • #11
                      TDs haben, bzw. nutzen kein name Attribut.

                      PHP-Code:
                      $_POST['vorname'
                      Sehe kein Input mit "vorname".
                      Wo solls also her kommen?


                      Lesestoff:
                      [google]EVA Prinzip[/google]
                      [google]Affenformular[/google]
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Ahh okay ja gut dann verstehe ich wieso ich den Wert NULL ausgegeben bekomme. Ich könnte ja oben in meiner Tabelle jeweils ein Textfeld machen mit dem entsprechenden Wert, dann würde es zumindest soweit funktionieren.. Finde aber, dass das sehr ekelig aussehen würde aber weiß mir momentan anders nicht zu helfen.. Gibt es eine Möglichkeit mein Problem so zu lösen wie ich das möchte?

                        Kommentar


                        • #13
                          Was hindert dich, neben deinen Delete Knöpfen auch noch Edit Knöpfe unter zu bringen?
                          Wir werden alle sterben

                          Kommentar


                          • #14
                            Nichts? Die Knöpfe sind nicht das Problem lediglich die Funktion...

                            Kommentar


                            • #15
                              Habe nun alles selber zu meiner Zufriedenheit gelöst. Danke für deine Geduld.

                              Kommentar

                              Lädt...
                              X