Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular mit mehrfachen Submit-Input + Übergabe als Variable

Einklappen

Neue Werbung 2019

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

  • Formular mit mehrfachen Submit-Input + Übergabe als Variable

    Hallo Freunde der Webprogrammierung

    Ich hab hier ein Problem mit einem etwas anderem Formular zum bearbeiten eines Galerie-Eintrages.
    Und zwar will ich mehrere 'Submit-Button' in einem Form verwenden um Bilder einzeln zu aktualisieren.
    Damit versuche ich Code zu sparen, in meiner Theorie sollte das auch funktionieren, in der Praxis aber liegen viele herausgerupfte Haarbüschel um mich herum.

    Zur Kontrolle verwende ich echo $new_image;, leider wird mir diese Variable nie angezeigt.

    Ich sehe nach unzähligen Versuchen den Baum vor lauter Wald nicht und hoffe dass mir jemand den entscheidenden Tipp geben kann :wink:

    PS: Dieses Skript steckt übrigens in den Kinderschuhen, also nicht wundern wegen Formatierung usw. :hammer:

    PHP-Code:
        <div id="content-main">
            <div id="content-head">
                Galerie-Eintrag bearbeiten
            </div>
            <div id="content-body">
                <?php
                $gid 
    $_GET;
                
    $gid $gid['gid'];
                if(isset(
    $_POST["save_info"]))
                {
                    require(
    "mysql/db_connect.inc.php");
                    
    $statement $db->prepare("UPDATE bl_galerie SET
                                                                    name = :name_neu,
                                                                    date = :date_neu,
                                                                    info = :info_neu,
                                                                    place = :place_neu
                                              WHERE id = '
    $gid'");
                    
    $statement->execute(array(
                                             
    'name_neu' => $_POST['edit_name'],
                                             
    'date_neu' => $_POST['edit_date'],
                                             
    'info_neu' => $_POST['edit_info'],
                                             
    'place_neu' => $_POST['edit_place']
                                        ));
                    echo 
    "<p>Eintrag erfolgreich geändert!</p>";
                }
                if(isset(
    $_POST["edit_image"]))
                {
                    if(isset(
    $_POST['new_image_01'])) {$new_image "image_01";}
                    elseif(isset(
    $_POST['new_image_02'])) {$new_image "image_02";}
                    elseif(isset(
    $_POST['new_image_03'])) {$new_image "image_03";}
                    elseif(isset(
    $_POST['new_image_04'])) {$new_image "image_04";}
                    elseif(isset(
    $_POST['new_image_05'])) {$new_image "image_05";}
                    elseif(isset(
    $_POST['new_image_06'])) {$new_image "image_06";}
                    elseif(isset(
    $_POST['new_image_07'])) {$new_image "image_07";}
                    elseif(isset(
    $_POST['new_image_08'])) {$new_image "image_08";}
                    elseif(isset(
    $_POST['new_image_09'])) {$new_image "image_09";}
                    elseif(isset(
    $_POST['new_image_10'])) {$new_image "image_10";}
                    echo 
    $new_image;
                }
                if(isset(
    $_POST["delete_image"]))
                {

                }


                require(
    "./mysql/db_connect.inc.php");
                
    $statement $db->query("SELECT * FROM bl_galerie WHERE id = '$gid'");
                while  (
    $db_gallery $statement->fetch()):
                    
    $db_name $db_gallery['name'];
                    
    $db_date $db_gallery['date'];
                    
    $db_info $db_gallery['info'];
                    
    $db_place $db_gallery['place'];
                    
    $db_image_01 $db_gallery['image_01'];
                    
    $db_image_02 $db_gallery['image_02'];
                    
    $db_image_03 $db_gallery['image_03'];
                    
    $db_image_04 $db_gallery['image_04'];
                    
    $db_image_05 $db_gallery['image_05'];
                    
    $db_image_06 $db_gallery['image_06'];
                    
    $db_image_07 $db_gallery['image_07'];
                    
    $db_image_08 $db_gallery['image_08'];
                    
    $db_image_09 $db_gallery['image_09'];
                    
    $db_image_10 $db_gallery['image_10'];
                endwhile;
                
    ?>
                <form action="admin.php?loc=admin_gallery_edit&gid=<?php echo $gid?>" method="post">
                    Name: <br /><input type="text" name="edit_name" size="30" value="<?php echo $db_name?>">
                    <br /><br />
                    Datum: <br /><input type="text" name="edit_date" size="30" value="<?php echo $db_date?>">
                    <br /><br />
                    Ort: <br /><input type="text" name="edit_place" size="30" value="<?php echo $db_place?>">
                    <br /><br />
                    Info: <br /><textarea rows="8" name="edit_info"><?php echo $db_info?></textarea>
                    <br /><br />
                    <input type="Submit" name="save_info" value="Speichern">
                </form>
                <br /><br />
                <form name="edit_image" enctype="multipart/form-data" action="admin.php?loc=admin_gallery_edit&gid=<?php echo $gid?>" method="post">
                <table align="center" border="0" width="626">
                    <tr>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_01?>" alt="Bild 01"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_01" value="Speichern"><br /><input type="Submit" name="delete_image" id="201" value="Löschen"><br /><br /></td>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_02?>" alt="Bild 02"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_02" value="Speichern"><br /><input type="Submit" name="delete_image" id="202" value="Löschen"><br /><br /></td>
                    </tr>
                    <tr>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_03?>" alt="Bild 03"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_03" value="Speichern"><br /><input type="Submit" name="delete_image" id="203" value="Löschen"><br /><br /></td>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_04?>" alt="Bild 04"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_04" value="Speichern"><br /><input type="Submit" name="delete_image" id="204" value="Löschen"><br /><br /></td>
                    </tr>
                    <tr>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_05?>" alt="Bild 05"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_05" value="Speichern"><br /><input type="Submit" name="delete_image" id="205" value="Löschen"><br /><br /></td>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_06?>" alt="Bild 06"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_06" value="Speichern"><br /><input type="Submit" name="delete_image" id="206" value="Löschen"><br /><br /></td>
                    </tr>
                    <tr>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_07?>" alt="Bild 07"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_07" value="Speichern"><br /><input type="Submit" name="delete_image" id="207" value="Löschen"><br /><br /></td>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_08?>" alt="Bild 08"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_08" value="Speichern"><br /><input type="Submit" name="delete_image" id="208" value="Löschen"><br /><br /></td>
                    </tr>
                    <tr>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_09?>" alt="Bild 09"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_09" value="Speichern"><br /><input type="Submit" name="delete_image" id="209" value="Löschen"><br /><br /></td>
                        <td><img width="313" height="125" src="./images/galerie/<?php echo $db_image_10?>" alt="Bild 10"><br /><input type="file" name="new_image" size="60" maxlength="255"><input type="Submit" name="new_image_10" value="Speichern"><br /><input type="Submit" name="delete_image" id="210" value="Löschen"><br /><br /></td>
                    </tr>
                </table>
                </form>
            </div>
        </div>

  • #2
    Ist ja fast das Selbe wie hier:
    https://www.php.de/forum/webentwickl...tenbanktabelle

    Auch du hast auf jeden Fall name und value bei den Buttons vertauscht.
    Im verlinkten Threads findest du auch ein Beispiel, wie man es sauber und richtig macht.
    sorry, shift-taste kaputt

    Kommentar


    • #3
      Zitat von Meister1900 Beitrag anzeigen
      Ist ja fast das Selbe wie hier:
      https://www.php.de/forum/webentwickl...tenbanktabelle

      Auch du hast auf jeden Fall name und value bei den Buttons vertauscht.
      Im verlinkten Threads findest du auch ein Beispiel, wie man es sauber und richtig macht.
      Ich danke dir für die schnelle Antwort.
      Und ja, da ist ein bissl was durcheinander gegangen...der Code und meine Gedanken...an der Stelle habe kapituliert und den code so wie er war hier rein geknallt.
      Werde mir das morgen nochmal genauer ansehen...

      Kommentar


      • #4
        PHP-Code:
                          require("mysql/db_connect.inc.php"); 
        Ist doppelt, require eh nur im kopf der datei, html separieren.

        Kommentar


        • #5
          Zitat von tomBuilder Beitrag anzeigen
          PHP-Code:
           require("mysql/db_connect.inc.php"); 
          Ist doppelt, require eh nur im kopf der datei, html separieren.
          War nicht meine Frage, löste auch nicht mein Problem..trotzdem Danke^^


          Problem übrigens gelöst, war dann doch nur ein mieses Formular und eine nicht weniger miese Auswertung

          Kommentar


          • #6
            Zitat von Sysmatic Beitrag anzeigen

            War nicht meine Frage, löste auch nicht mein Problem
            Ich finde, dass man gratis injiziertes Wissen auf angemessene Art und Weise annehmen sollte. Du willst deinen Code ja sicher auch aufs nächste Level hieven, oder?

            Kommentar


            • #7
              Zitat von Miss Santrop Beitrag anzeigen

              Ich finde, dass man gratis injiziertes Wissen auf angemessene Art und Weise annehmen sollte. Du willst deinen Code ja sicher auch aufs nächste Level hieven, oder?
              Habe ich mich nicht dafür bedankt? Und das 'trotzdem Danke' war durchaus ernst gemeint!
              Freundlich sein wird immer schwieriger...

              Kommentar


              • #8
                Ich habe weiter gemacht als ich dachte dass ich es jetzt raus habe und stellte fest dass es wieder nicht geht...ich verliere allmählich Überblick und Nerven!

                Code:
                    <div id="content-main">
                        <div id="content-head">
                            Galerie-Eintrag bearbeiten
                        </div>
                        <div id="content-body">
                            <?php
                            $gid = $_GET;
                            $gid = $gid['gid'];
                            if(isset($_POST["save_info"]))
                            {
                                require_once("./mysql/db_connect.inc.php");
                                $statement = $db->prepare("UPDATE bl_galerie SET
                                                                                name = :name_neu,
                                                                                date = :date_neu,
                                                                                info_de = :info_de_neu,
                                                                                info_en = :info_en_neu,
                                                                                info_dk = :info_dk_neu,
                                                                                place = :place_neu
                                                          WHERE id = '$gid'");
                                $statement->execute(array(
                                                         'name_neu' => $_POST['edit_name'],
                                                         'date_neu' => $_POST['edit_date'],
                                                         'info_de_neu' => $_POST['edit_info_de'],
                                                         'info_en_neu' => $_POST['edit_info_en'],
                                                         'info_dk_neu' => $_POST['edit_info_dk'],
                                                         'place_neu' => $_POST['edit_place']
                                                    ));
                                echo "<p>Eintrag erfolgreich geändert!</p>";
                            }
                            if(isset($_POST["save_image_00"]))
                            {
                                $new_image = $_FILES['new_image']['name'];
                                require_once("./mysql/db_connect.inc.php");
                                $statement = $db->query("SELECT folder FROM bl_galerie WHERE id = '$gid'");
                                while  ($row = $statement->fetch()):
                                    $dbfolder = $row['folder'];
                                endwhile;
                                require_once("./mysql/db_connect.inc.php");
                                $statement = $db->prepare("UPDATE bl_galerie SET image_00 = ? WHERE id = '$gid'");
                                $statement->execute(array($new_image));
                                move_uploaded_file ($_FILES['new_image']['tmp_name'] , './images/galerie/'.$dbfolder.$new_image);
                            }
                            if(isset($_POST["save_image_01"]))
                            {
                                $new_image = "image_01";
                            }
                            if(isset($_POST["save_image_02"]))
                            {
                                $new_image = "image_02";
                            }
                            if(isset($_POST["save_image_03"]))
                            {
                                $new_image = "image_03";
                            }
                            if(isset($_POST["save_image_04"]))
                            {
                                $new_image = "image_04";
                            }
                            if(isset($_POST["save_image_05"]))
                            {
                                $new_image = "image_05";
                            }
                            if(isset($_POST["save_image_06"]))
                            {
                                $new_image = "image_06";
                            }
                            if(isset($_POST["save_image_07"]))
                            {
                                $new_image = "image_07";
                            }
                            if(isset($_POST["save_image_08"]))
                            {
                                $new_image = "image_08";
                            }
                            if(isset($_POST["save_image_09"]))
                            {
                                $new_image = "image_09";
                            }
                
                            if(isset($_POST["delete_image"]))
                            {
                
                            }
                
                
                            require_once("./mysql/db_connect.inc.php");
                            $statement = $db->query("SELECT * FROM bl_galerie WHERE id = '$gid'");
                            while  ($db_gallery = $statement->fetch()):
                                $db_name = $db_gallery['name'];
                                $db_date = $db_gallery['date'];
                                $db_info_de = $db_gallery['info_de'];
                                $db_info_en = $db_gallery['info_en'];
                                $db_info_dk = $db_gallery['info_dk'];
                                $db_place = $db_gallery['place'];
                                $db_folder = $db_gallery['folder'];
                                $db_image_00 = $db_gallery['image_00'];
                                $db_image_01 = $db_gallery['image_01'];
                                $db_image_02 = $db_gallery['image_02'];
                                $db_image_03 = $db_gallery['image_03'];
                                $db_image_04 = $db_gallery['image_04'];
                                $db_image_05 = $db_gallery['image_05'];
                                $db_image_06 = $db_gallery['image_06'];
                                $db_image_07 = $db_gallery['image_07'];
                                $db_image_08 = $db_gallery['image_08'];
                                $db_image_09 = $db_gallery['image_09'];
                            endwhile;
                            ?>
                            <form action="admin.php?loc=admin_gallery_edit&gid=<?php echo $gid; ?>" method="post">
                                Name: <br /><input type="text" name="edit_name" size="30" value="<?php echo $db_name; ?>">
                                <br /><br />
                                Datum: <br /><input type="text" name="edit_date" size="30" value="<?php echo $db_date; ?>">
                                <br /><br />
                                Ort: <br /><input type="text" name="edit_place" size="30" value="<?php echo $db_place; ?>">
                                <br /><br />
                                Info deutsch: <br /><textarea rows="8" name="edit_info_de"><?php echo $db_info_de; ?></textarea>
                                <br /><br />
                                Info englisch: <br /><textarea rows="8" name="edit_info_en"><?php echo $db_info_en; ?></textarea>
                                <br /><br />
                                Info dänisch: <br /><textarea rows="8" name="edit_info_dk"><?php echo $db_info_dk; ?></textarea>
                                <br /><br />
                                <input type="Submit" name="save_info" value="Speichern">
                            </form>
                            <br /><br />
                            <form enctype="multipart/form-data" action="admin.php?loc=admin_gallery_edit&gid=<?php echo $gid; ?>" method="post">
                            <table align="center" border="0" width="626">
                                <tr>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_00; ?>" alt="Bild 01"><br /><input type="file" name="new_image[]" value="new_image_00" size="60" maxlength="255"><input type="Submit" name="save_image_00" value="Bild 1 Speichern"><br /><input type="Submit" name="delete_image" id="201" value="Löschen"><br /><br /></td>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_01; ?>" alt="Bild 02"><br /><input type="file" name="new_image" value="new_image_01" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 2 Speichern"><br /><input type="Submit" name="delete_image" id="202" value="Löschen"><br /><br /></td>
                                </tr>
                                <tr>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_02; ?>" alt="Bild 03"><br /><input type="file" name="new_image" value="new_image_02" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 3 Speichern"><br /><input type="Submit" name="delete_image" id="203" value="Löschen"><br /><br /></td>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_03; ?>" alt="Bild 04"><br /><input type="file" name="new_image" value="new_image_03" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 4 Speichern"><br /><input type="Submit" name="delete_image" id="204" value="Löschen"><br /><br /></td>
                                </tr>
                                <tr>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_04; ?>" alt="Bild 05"><br /><input type="file" name="new_image" value="new_image_04" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 5 Speichern"><br /><input type="Submit" name="delete_image" id="205" value="Löschen"><br /><br /></td>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_05; ?>" alt="Bild 06"><br /><input type="file" name="new_image" value="new_image_05" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 6 Speichern"><br /><input type="Submit" name="delete_image" id="206" value="Löschen"><br /><br /></td>
                                </tr>
                                <tr>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_06; ?>" alt="Bild 07"><br /><input type="file" name="new_image" value="new_image_06" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 7 Speichern"><br /><input type="Submit" name="delete_image" id="207" value="Löschen"><br /><br /></td>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_07; ?>" alt="Bild 08"><br /><input type="file" name="new_image" value="new_image_07" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 8 Speichern"><br /><input type="Submit" name="delete_image" id="208" value="Löschen"><br /><br /></td>
                                </tr>
                                <tr>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_08; ?>" alt="Bild 09"><br /><input type="file" name="new_image" value="new_image_08" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 9 Speichern"><br /><input type="Submit" name="delete_image" id="209" value="Löschen"><br /><br /></td>
                                    <td><img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_09; ?>" alt="Bild 10"><br /><input type="file" name="new_image" value="new_image_09" size="60" maxlength="255"><input type="Submit" name="edit_image" value="Bild 10 Speichern"><br /><input type="Submit" name="delete_image" id="210" value="Löschen"><br /><br /></td>
                                </tr>
                            </table>
                            </form>
                        </div>
                    </div>
                Ich bekomme weder das Bild auf den Server gespeichert noch den Eintrag in der Datenbank aktualisiert...nein warte, er wird aktualisiert... -> " -nichts- " ..da steht nicht mal NULL...
                Ich seh den Baum vor lauter Wald nicht mehr!

                Und JA!
                Der Code an sich ist Schrott, weiß ich...aber er soll erstmal funktionieren!
                Für anderweitige Tipps bin ich natürlich auch sehr dankbar und nehme diese gerne an.

                Mein nächster Lösungsansatz wäre der simpelste: für jedes Bild ein eigenes Formular.
                Aber das kann es ja nicht sein, ich will ja möglichst wenig Code/HTML verwenden...
                Ich finde aber keine kompakte Lösung hierfür

                Kommentar


                • #9
                  Zitat von Sysmatic Beitrag anzeigen

                  Habe ich mich nicht dafür bedankt? Und das 'trotzdem Danke' war durchaus ernst gemeint!
                  Freundlich sein wird immer schwieriger...
                  Ich hab schon befürchtet, dass du es falsch verstehen könntest. Klar hast du dich bedankt, darum ging es mir ja nicht. Sondern darum, dass du die Tipps von tomBuilder einsackst, weil sie dich eben - wenn auch nur ein kleines Stück - weiterbringen. Alles gut also

                  Zu deinem Code:

                  Es ist ein Riesenwust, in dem alles drinsteckt. Versuche doch mal, das ist kleinere Teile/Funktionen zu packen, und bei jedem zu checken, ob er in sich funktioniert. Der sollte aufgedröselt werden, ich glaub dir gern, dass du da irgendwann mal nur noch schwer durchsteigst.

                  Also separiere den PHP part so gut wie möglich vom HTML.

                  Zum Beispiel der File-Upload, den musst du ja zuerst nicht zwingend gleich mit deiner Bildergalerie testen, sondern kannst erstmal so prüfen, ob mit deiner Upload-Routine ein Bild hochgeladen wird. Nimm ein Form und teste nur diesen Part. Dann den nächsten usw.

                  Und bau Kontrollabfragen ein, die dir ausgeben, was genau passt und was nicht.

                  Der Code an sich ist Schrott, weiß ich...aber er soll erstmal funktionieren!
                  Das ist doch schon mal ein Grund, das besser zu machen

                  Kommentar


                  • #10
                    Deine Herangehensweise ist falsch. Man schreibt nicht zuerst ein funktionierendes Script und macht es hinterher ordentlich. Denn genau das ist ja die Ursache für dein Problem. Ein Frankenstein-Code, bei dem man keinen Überblick mehr hat und eine Garantie für zahlreiche Fehler und mühsame Fehlersuche ist. Du würdest dir deutlich leichter tun, wenn du den Code sauber strukturierst und nicht alles kreuz und quer zusammen mischst.

                    Jede Minute Zeit, die du in sauberen Code steckst, bekommst du später vielfach zurück, da du dir mehrere Minuten Ärger ersparst. Der Arbeitsaufwand beim Programmieren ist etwa 1:10 schreiben zu lesen. Also man ist deutlich mehr Zeit mit dem Lesen als mit dem Schreiben von Code beschäftigt. Ziel sollte es also nicht sein Zeit beim Code Schreiben zu sparen, sondern Code so zu schreiben, dass er verständlich ist und schnell gelesen werden kann.

                    Kommentar


                    • #11
                      Schlefen bauen., Funktionen bauen auslagern, sonst wirst Du nicht froh.
                      aber mal was anders:

                      PHP-Code:
                        $db->query("SELECT * FROM bl_galerie WHERE id = '$gid'");  
                      //(..) $db_image_00 = $db_gallery['image_00'];
                      $db_image_01 $db_gallery['image_01'];
                      $db_image_02 $db_gallery['image_02'];
                      $db_image_03 $db_gallery['image_03'];
                      $db_image_04 $db_gallery['image_04']; 
                      sieht nach supoptimaler normalisierung aus.

                      PHP-Code:
                        <img width="313" height="125" src="./images/galerie/<?php echo $db_folder; echo $db_image_06?>
                      styles lieber gleich raus,
                      ist bei dbfolder ein slash am ende ?
                      beherzige die Tips von Miss Santrop

                      achja, bitte die Code tags in #8 entprechend anpassen und sowas nicht mehr unter Fortgeschritten posten!

                      Kommentar

                      Lädt...
                      X