Announcement

Collapse
No announcement yet.

Formular mit gleichen Namen der Eingabefelder abfragen und verarbeiten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formular mit gleichen Namen der Eingabefelder abfragen und verarbeiten

    Hallo an Alle,

    heute habe ich folgende Herausforderung. In einem CMS sollen für Produkte mehrere Sprachen angelegt werden. Dafür habe ich ein Formular gemacht in dem
    ich immer 100 Artikel gleichzeitig bearbeiten kann. Das sieht so aus (auf 3 Beispielartikel verkürzt ):

    HTML Code:
    <form name="formtitel" action="index.php?id=14" method="POST">
    
        <div class="artBox">
    
                        Kugelfisch mit Scheibe Gartenflair (16cm) - 1492703
    
                        EN&nbsp;<input name="text_en[]" size="80" value="">
    
                        RU&nbsp;<input name="text_ru[]" size="80" value="">
     
                        UA&nbsp;<input name="text_uk[]" size="80" value="">
    
                <input type="submit" value="Speichern">
                <input type="hidden" name="artikel_nr[]" value="1492703">
        </div>
        
    
        <div class="artBox">
    
                        Kugelfisch mit Scheibe Gartenflair (16cm) - 1492710
    
                        EN&nbsp;<input name="text_en[]" size="80" value="">
      
                        RU&nbsp;<input name="text_ru[]" size="80" value="">
    
                        UA&nbsp;<input name="text_uk[]" size="80" value="">
    
                <input type="submit" value="Speichern">
                <input type="hidden" name="artikel_nr[]" value="1492710">
    
        </div>
        
    
        <div class="artBox">
    
                        Kugelfisch mit Scheibe Gartenflair (16cm) - 1492717
    
                        EN&nbsp;<input name="text_en[]" size="80" value="">
    
                        RU&nbsp;<input name="text_ru[]" size="80" value="">
    
                        UA&nbsp;<input name="text_uk[]" size="80" value="">
    
                <input type="submit" value="Speichern">
                <input type="hidden" name="artikel_nr[]" value="1492717">
    
        </div>
    </form>
    Zur Vereinfachung der Lesbarkeit habe ich auch fast alle DIV entfernt. Jeder einzelne Position hat ein Button "Speichern".

    Mit dem Array $_POST kann ich irgendwie nichts anfangen. Wie muß ich das auslesen damit ich mit foreach()
    ein update auf die Tabelle machen kann das so aussehen soll:

    PHP Code:
    $sql "update dbo_artikel set 
    artikel_titel_en = '
    $titel_en', 
    artikel_titel_ru = '
    $titel_ru', 
    artikel_titel_uk = '
    $titel_uk
    where artikel_nr = '
    $artikel_nr'"
    Gruß René
    Zuletzt editiert von Nevada208; 10.11.2014, 14:49.

  • #2
    Aha, und? Gibt es eine Frage?
    Wahrscheinlich muss jeder Block in ein Form-Tag
    Christian

    Comment


    • #3
      ups... zu schnell speichern gedrückt, jetzt ist vollständig

      Comment


      • #4
        Du kannst jeden Block (einschl. Submit-Button) in ein Form-Tag legen. Dann kommen aber auch nur die Daten dieses Blockes an
        Christian

        Comment


        • #5
          Wie mache ich das? Ich hätte ja 100 Blöcke, müssen die unterschiedliche Namen haben oder name="formtitel[]"?
          Mir wäre schon wichtig das man mehrere Artikel nacheinander eingeben kann und dann egal wo man Speichern drückt die
          Daten in die DB geschrieben werden.
          Zuletzt editiert von Nevada208; 10.11.2014, 15:35.

          Comment


          • #6
            Werden sie ja, aber es werden auf einmal halt nur 1 Satz übermittelt
            Christian

            Comment


            • #7
              Hallo,
              Originally posted by Nevada208 View Post
              ...Mit dem Array $_POST kann ich irgendwie nichts anfangen.
              Dann solltest du dich als Erstes mit den Grundlagen der Formularverarbeitung in PHP beschäftigen!
              Und als Anregung:
              Du kannst die jeweilige Artikelnummer als Index in die Mehrfachnamen geben. Also z.B.:
              HTML Code:
              <div class="artBox">
                Kugelfisch mit Scheibe Gartenflair (16cm) - 1492710
                EN&nbsp;<input name="text_en[1492710]" size="80" value="">
                RU&nbsp;<input name="text_ru[1492710]" size="80" value="">
                UA&nbsp;<input name="text_uk[1492710]" size="80" value="">
                <input type="submit" value="Speichern">
              </div>
              Damit erhälst du beim Submit des kompletten Formulars in $_POST drei Arrays (text_en, text_ru, text_uk), die jeweils die Artikelnummer als Index haben. Für o.g. Beispiel könnte $_POST also so aussehen:
              Code:
              array (
                "text_en" => array(
                  1492710 => "Eingabe bei EN"
                ),
              "text_ru" => array(
                  1492710 => "Eingabe bei RU"
                ),
              "text_uk" => array(
                  1492710 => "Eingabe bei UK"
                )
              Über diese Arrays zu iterieren sollte dann eigentlich kein Problem sein.

              Anmerkung:
              Originally posted by Nevada208 View Post
              PHP Code:
              $sql "update dbo_artikel set  
              artikel_titel_en = '
              $titel_en',  
              artikel_titel_ru = '
              $titel_ru',  
              artikel_titel_uk = '
              $titel_uk'  
              where artikel_nr = '
              $artikel_nr'"
              ist unter dem Stichwort "SQL-Injection" keine gute Idee! Unter dem Stichwort "Update in Schleife" und "Performance" genausowenig! Hier solltest du besser den Weg über MySQLi und parametrisierte Abfragen wählen!

              Gruß Falk
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                Hallo Falk,

                danke für Deine Antwort. In meinen Beispielen hier kürze ich mein Code immer das er besser lesbar ist. Um SQL-Injection´zu verhindern arbeite ich z.B. mit mysql_real_escape_string und is_numeric. Das Thema parametrisierte Abfragen werde ich mir mal anschauen.

                Gruß René

                Comment


                • #9
                  Ich habe jetzt ein wenig gegoogelt und das hier gefunden: http://www.peterkropff.de/site/mysql...statements.htm. Passt das zum Thema parametrisierte Abfragen?

                  Comment


                  • #10
                    http://php.net/manual/de/mysqli.quic...statements.php
                    Christian

                    Comment

                    Working...
                    X