dynamisch erzeugte Submit Buttons zuweisen

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

  • dynamisch erzeugte Submit Buttons zuweisen

    Hallo zusammen

    Ich habe eine Tabelle in der Daten aus einer DB ausgegeben werden. Zusätzlich gibt es pro Zeile noch einen Submit Button, der ein Script aufruft und einen der Werte anpasst.

    Ausgabe der Daten:

    PHP-Code:
    while($option1=mysql_fetch_array($result1))
                                          {
                                              echo 
    "<tr> <td>$option1[AuftragNr]</td><td>$option1[Fahrer]</td><td>$option1[Datum]</td><td>$option1[Uhrzeit]</td>
                                              <td>
    $option1[Vorname]</td><td>$option1[Nachname]</td><td>$option1[Startort]</td><td>$option1[Zielort]</td>
                                              <td>
    $option1[Personen]</td><td>$option1[Status]</td><td>$option1[Telefonnummer]</td><td><div class='eintrag'>$option1[Bemerkungen]</div></td>
                                              <td><input id='
    $zahlID'type='submit' name='$option1[AuftragNr]' value='Auftrag $option1[AuftragNr] uebernehmen'/></td></tr>";
                         
                                              
    $zahlID++ ;
                                          } 
    Der Name der Submit Buttons kann rein theoretisch beliebig gewählt werden.

    Bei einem Klick auf einen der Submit Button soll der zugehörige Fahrer dieser Zeile angepasst werden, hierfür benötige ich die AuftragNr(PK). Ich scheitere jedoch daran im durch die action des Formular aufgerufenen PHP-Script festzustellen 1. welcher submit button aufgerufen wurde und 2. welches die dazugehörige AuftragNr ist. Ich vermute dass ich wahrscheinlich die AuftragNr als name ='' des submit buttons definiere und dann irgendwie darauf zugreife. nur wie ? Kann mir hier jmnd weiterhelfen ?

    Gruss

    anno1879

  • #2
    Was sagt denn ein print_r($_POST);?

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Der Name für den Button ist vielleicht auch nicht perfekt gewählt. Sowas wie "button[{auftrnr}]" wäre vielleicht besser, damit schließt du potentielles Überschreiben aus und kannst außerdem auch direkt über $_POST[button] drauf zugreifen.

      Kommentar


      • #4
        Zitat von anno1879 Beitrag anzeigen
        Ich vermute dass ich wahrscheinlich die AuftragNr als name ='' des submit buttons definiere und dann irgendwie darauf zugreife. nur wie ?
        name="submit[auftragsnummer]"

        Anschließend Inhalt von $_POST mit var_dump/print_r anschauen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Irgendwie klappt das gerade nicht so wie es sollte.

          name='submit[$option1[AuftragNr]]'

          Funktioniert soweit auch wie es sollte, nur für folgendes:

          echo print_r ($_POST($submit));

          erhalte ich die Fehlermeldung " Function name must be a string in", versuche ich es mit "echo print_r ($_POST($submit[]));" erhalte ich die gleiche Fehlermeldung.

          Kommentar


          • #6
            Hallo,

            $_POST ist ein Array und auf dessen Elemente greift man über eckige Klammern zu. Du hast runde Klammern geschrieben und deshalb versucht PHP, die Funktion $_POST auszuführen.

            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Bestens nun klappt es auch

              echo print_r ($_POST[$submit]); ergibt die Ausgabe "1" (bei einem vorhandenen Auftrag). Um ehrlich zu sein hab ich absolut keine Ahnung was mir die ganze Aktion nun gebracht haben soll...

              Edit: Ich vermute mal die 1 sagt aus dass ein Element/Wert im Array vorhanden ist. Der eigentliche Wert wäre in meinem Fall gerade ja also 20 für die AuftragNr. Ist die Annahme dass via $_POST ich immer nur einen Wert, nämlich den für den geklickten Button, erhalte ? Wenn ja wäre mein Problem ja gelöst
              Zuletzt geändert von anno1879; 17.07.2012, 20:29.

              Kommentar


              • #8
                Ich vermute mal, es ist eher so gemeint: print_r($_POST['submit']) oder gleich print_r($_POST), um dir erstmal einen Überblick zu verschaffen.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Ok also dann wäre die Ausgabe folgende:
                  Array ( [20] => Auftrag 20 uebernehmen ) 1

                  Nichts desto trotz, ich weiss noch immer nicht wohin mich das ganze führen soll. Ein kleiner Überblick was die Idee dahinter ist wäre hilfreich.

                  Kommentar


                  • #10
                    Na ist die 20 nicht das, was du haben willst?

                    Sie steckt als erster und einziger Schlüssel in diesem Array drin – also brauchst du dir den doch nur noch zu greifen! (Und bevor du jetzt fragst, wie – bitte Array-Funktionen im Manual anschauen!)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Zitat von wahsaga Beitrag anzeigen
                      Na ist die 20 nicht das, was du haben willst?

                      Sie steckt als erster und einziger Schlüssel in diesem Array drin – also brauchst du dir den doch nur noch zu greifen! (Und bevor du jetzt fragst, wie – bitte Array-Funktionen im Manual anschauen!)
                      Wenn die 20 als erster und einziger Schlüssel in diesem Array drinn ist dann müsste ein Zugriff a la:

                      $result = $_POST[submit[0]];

                      ja funktionieren. Nur ergibt das ganze immer einen Parsing-Fehler für die 2. eckigen Klammern. Und via

                      $result = $_POST[submit];
                      echo $result;

                      komme ich auch nicht an den Wert ran. :/

                      Kommentar


                      • #12
                        Sei nicht böse, aber das artet langsam in einen Grundlagenkurs aus und wenn wir dir jetzt alles haarklein erklären müssen, will das jeder Anfänger haben.

                        Nimm dir bitte das Handbuch und arbeite die Grundlagen der Sprache durch. Mach ein paar Anfängertutorials und du wirst zum Ziel kommen. Schon dass du $_POST[submit] statt $_POST['submit'] (wie ich es dir vorgesagt hatte) schreibst, lässt erahnen, dass du dich mit den Grundlagen noch nicht beschäftigt hast und damit noch keine Sensibilität für syntaktische Konstrukte entwickeln konntest.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Zitat von AmicaNoctis Beitrag anzeigen
                          Sei nicht böse, aber das artet langsam in einen Grundlagenkurs aus und wenn wir dir jetzt alles haarklein erklären müssen, will das jeder Anfänger haben.

                          Nimm dir bitte das Handbuch und arbeite die Grundlagen der Sprache durch. Mach ein paar Anfängertutorials und du wirst zum Ziel kommen. Schon dass du $_POST[submit] statt $_POST['submit'] (wie ich es dir vorgesagt hatte) schreibst, lässt erahnen, dass du dich mit den Grundlagen noch nicht beschäftigt hast und damit noch keine Sensibilität für syntaktische Konstrukte entwickeln konntest.
                          Mag ja alles durchaus so sein, wie demotivierend es sein mag an diesem einen Problem nun festzusitzen, kannst du dir ja selbst vorstellen. Für Hilfe/Hinweise in der derzeitigen Situation wäre ich trotz allem dankbar.

                          Kommentar


                          • #14
                            Zitat von anno1879 Beitrag anzeigen
                            Wenn die 20 als erster und einziger Schlüssel in diesem Array drinn ist dann müsste ein Zugriff a la:

                            $result = $_POST[submit[0]];

                            ja funktionieren.
                            Nein (abgesehen von dem Syntaxfehler) – der Schlüssel ist 20, und nicht 0.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Zitat von wahsaga Beitrag anzeigen
                              Nein (abgesehen von dem Syntaxfehler) – der Schlüssel ist 20, und nicht 0.
                              Wenn der Schlüssel 20 ist, haben wir noch ein ganz anderes Problem. Woher soll ich den Schlüssel kennen ? Ich versuche ja die AuftragNr zum zugehörigen submit Button zu ermitteln und nun soll der Schlüssel die AuftragNr sein, ergo habe ich ein Problem und der Lösungsansatz scheint mir nicht hilfreich zu sein. Oder habe ich ne andere Möglichkeit an den Wert zu kommen als via dem Schlüssel ?

                              Kommentar

                              Lädt...
                              X