dynamische Tabelle?

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

  • dynamische Tabelle?

    Hallo,

    ich bin ein neuling was PHP angeht und möchte Euch mal um Eure Meinung zu folgendem Problem bitten:

    ich habe ein Formulare zum eingeben von Maschinen (name, abrechnungsart: prostd, prokm..)

    Momentan lässt sich über das Formular nur jeweils eine Maschine eintragen, da die Anzahl der Maschinen immer unterschiedlich ist kann ich kein bestimmte Anzahl von Zeilen vorgeben.

    Wie bekomme ich die Tabelle dynamisch, so das User relativ leicht viele Maschinen über das Formular eingeben kann?

    Bin für jede Hilfe dankbar

  • #2
    voher input feld wo man anzahl der Maschinen eingibt.

    und durch die zahl dann einfach das fomular per For schleife wiederhohlen?

    ps: obacht ... aus dem Normalen Fomular namen müssen dabei aber Array elemente im Post enstehen da du sonst immer nur die letzten daten bekommst.

    z.b.

    Code:
    <input type="text" name="posten" value="" />
    wird zu
    <input type="text" name="posten[]" value="" />

    ach ändert sich dadurch die verarbeitung und das abspeichern etwas, da du nun Array Elemente bekommst.

    $_POST['posten'][0] .... $_POST['posten'][n]
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      Wie bekomme ich die Tabelle dynamisch, so das User relativ leicht viele Maschinen über das Formular eingeben kann?
      Das geht entweder mit PHP oder Javascript.
      php:
      Vor dem eigentlichen Formular ein Form wo der User gefragt wird wieviele Maschinen er eingeben will. Nachdem das Form an den Server geschickt wurde kann dieser aufgrund des POST oder GET Werts mit dem entsprechenden PHP Script die gewünschte Anzahl Felder im Form ausgeben
      javascript:
      Der User gibt an wieviele Felder er haben will und eine Javascript Funktion fügt die entsprechende Anzahl Felder an das Formular an.

      Und da du keinen eigenen Code hast verschiebe ich diesen Thread mal nach Brainstorming **move**

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Oder du hast neben dem "Abschicken"-Button noch einen, der das erfassen eines weiteren Datensatzes ermöglicht und per JS schlicht diie entsprechenden Elemente in den DOM hängt.

        Oder du hast eine Checkbox, welche, wenn aktiviert, dafür sorgt, dass nicht die Bestätigungsseite sondern erneut das Formular zum erfassen erscheint.

        Oder, oder, oder.
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          danke für Eure Hilfe, habe es hinbekommen . Nun habe ich allerdings noch eine kleine Frage.

          Und zwar betreffend des SQL-Skriptes. Wie Wyveres schon richtig erwähnte muss ich ja nun Array´s zur Übertragung in DB nutzen. Bei der Kostenabfrage ist es ja so, dass man angeben muss ob €/h oder €/km. Weil es ja für spätere Berichte in unterschiedliche Spalten in der DB eingetragen werden muss. Wie realsiere ich den SQL-Skript das das so funktioniert und das auch immer die richtige anzahl an eingegebenen Maschinen in die DB eingetragen werden?

          Kommentar


          • #6
            Sehr schwammige frage.

            Wie du die Einheit da rein bekommst?

            - einfach ein selectfeld mit den werten "prostunde"/"prokm" anlegen.
            - Nach dem Absenden überprüfen, ob einer der beiden werte ausgewählt wurde.
            - im Query ein SET einheit = ' . $POST['einheit'] ... verwenden.

            Eigentlich genauso wie mit jedem anderen wert.

            Und die Frage mit der Anzahl verstehe ich gar nicht. Wenn du dein Formular wie beschrieben mit arrays aufbaust, hast du doch deine Anzahl. Und hast außerdem auch die Daten für jede Maschine. Beschreib mal dein konkretes Problem!

            Vielleicht hilft es dir auch, wenn du dir einfach mal die kompletten Daten (Post-Array) nach dem Absenden anzeigen lässt. Wenn du die Daten schon hast, ist es doch ein kinderspiel den INSERT-Query mit ner schleife zu erstellen.

            INSERT INTO ... VALUES (1,2,3), (a,b,c), (...)

            Kommentar


            • #7
              Sehr schwammige frage.
              hmmm...

              - einfach ein selectfeld mit den werten "prostunde"/"prokm" anlegen.
              soweit habe ich es

              im Query ein SET einheit = ' . $POST['einheit'] ... verwenden.
              genau das war bzw. ist das Problem. habe in der DB zwei Spalten , eine für jede Einheit. weil nicht wusste wie ich es genau hinbekomme das die Einheit mit 0 oder 1 in die richtige Spalte kommt... Aber gut man kann ja für die Einheiten eine Spalte nehmen

              Und die Frage mit der Anzahl verstehe ich gar nicht. Wenn du dein Formular wie beschrieben mit arrays aufbaust, hast du doch deine Anzahl. Und hast außerdem auch die Daten für jede Maschine. Beschreib mal dein konkretes Problem!
              Ja das Problem ist das die Anzahl der eingegebenen Maschinen immer unterschiedlich ist. Und somit ist doch die "Länge" des INSERT-Strings unterschiedlich, oder? Woher weiss ich wo das Ende des Arrays ist?

              Vielleicht hilft es dir auch, wenn du dir einfach mal die kompletten Daten (Post-Array) nach dem Absenden anzeigen lässt. Wenn du die Daten schon hast, ist es doch ein kinderspiel den INSERT-Query mit ner schleife zu erstellen.
              Ist eine sehr gute Idee. Dafür das meine Frage nicht so richtig rübergekommen ist
              Sehr schwammige frage.
              hast Du mir schon ein ganzes Stück weiter geholfen. DANKE
              Zuletzt geändert von klein_erbse; 24.04.2008, 09:44.

              Kommentar


              • #8
                genau das war bzw. ist das Problem. habe in der DB zwei Spalten , eine für jede Einheit. weil nicht wusste wie ich es genau hinbekomme das die Einheit mit 0 oder 1 in die richtige Spalte kommt... Aber gut man kann ja für die Einheiten eine Spalte nehmen
                Autsch, falsches DB->Design. Wenn ausgeschlossen ist, dass etwas beide Abrechnungsarten hat, brauchst du nur eine Spalte. für den Wert und eine für die Einheit.

                BTW: ansonsten halt sowas:
                PHP-Code:
                $sql 'INSERT INTO ... VALUES ';
                schleife()
                  
                $sql .= '("name",' . (if(einheit == km) ? '"",' $kosten $kosten ',""') . ')'
                Nicht auf syntax-Fehler korrigiert, einfach nur schnell die kompakt-Version hingeschrieben...

                Ja das Problem ist das die Anzahl der eingegebenen Maschinen immer unterschiedlich ist. Und somit ist doch die "Länge" des INSERT-Strings unterschiedlich, oder? Woher weiss ich wo das Ende des Arrays ist?
                ähm, foreach oder count grundlagen?

                Ist eine sehr gute Idee.
                Auf die man im übrigen auch selber kommen könnte, wenn man mit seinen eigenen daten nichts anzufangen weiß...

                OffTopic:
                Maschinen lassen irgendwie einen kommerziellen Hintergrund befürchten. Gar nicht gut...

                Kommentar


                • #9
                  Autsch, falsches DB->Design. Wenn ausgeschlossen ist, dass etwas beide Abrechnungsarten hat, brauchst du nur eine Spalte. für den Wert und eine für die Einheit.
                  Ja genau das war das Problem. Da hätte ich in der Tat selber drauf kommen können. Aber niemand ist vollkommen.

                  DANKE für Deine Hilfe

                  Kommentar

                  Lädt...
                  X