Formulareingaben kommen nicht an

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

  • Formulareingaben kommen nicht an

    Hallo zusammen,

    in diesem Skript werden Daten aus einer Tabelle gelesen und dargestelllt, Mit dem Button Zufügen soll der entsprechende Datensatz, ergänzt um Anzahl und evtl. geändertern vk, übergeben werden.

    Das Anzeigen der eingelesenen Datensätze funktioniert auch soweit korrekt. Die zwei bearbeitbaren Zellen sind auch Inputfelder, ich kann Eingaben machen. Nur kommen diese leider nicht an. Heißt nach dem Klick auf Zufügen bleiben $_POST['anzahl'] und $_POST['vk'] leer.

    Mein Problem ist nun, dass ich nicht weiß warum. Könnte mir bitte jemand weiterhelfen ?

    Vielen Dank !


    Gruß

    Michael

    PHP-Code:
    echo "<table>";
    echo 
    "<caption>Artikel</caption>";
    echo 
    "<thead>";
    echo 
    "<tr>";
        echo 
    "<th>Aktion</th>";
        echo 
    "<th>Anzahl</th>";
        echo 
    "<th>VK</th>";
        echo 
    "<th>ANr. intern</th>";
        echo 
    "<th>Beschreibung</th>";
        echo 
    "<th>EK</th>";
        echo 
    "<th>ANr. extern</th>";
        echo 
    "<th>Lieferant</th>";
    echo 
    "</tr>";
    echo 
    "</thead>";

    while(
    $row mysql_fetch_assoc($result))
    {
        
    $suche "&";
        
    $ersetzung "&amp;";
        
    $lieferant str_replace($suche$ersetzung$row['lieferant']);
        echo 
    "<tr>";
        echo 
    "<td><form action='index.php?ziel=" $_GET['ziel'] . "&amp;menu=angebote_erstellen' method='post'>
    <input type='submit' name='zufügen' value='Zufügen'></input>
        <input name='anzahl' type='text' size='4' maxlength='4'></input>
        <input name='vk' type='text' size='8' maxlength='8'></input>
        <input name='anr_intern' type='hidden' value='"
    .$row['anr_intern']."' readonly></input>
        <input name='beschreibung' type='hidden' value='"
    .$row['beschreibung']."' readonly></input>
        <input name='bruttoek' type='hidden' value='"
    .$row['bruttoek']."' readonly size='5'></input>    
        <input name='anr_extern' type='hidden' value='"
    .$row['anr_extern']."' readonly></input>
        <input name='lieferant' type='hidden' value='"
    .$lieferant."' readonly></input>
        </form></td>"
    ;
        echo 
    "<td style='background: #e7c4a0;'><input name='anzahl' type='text' size='4' maxlength='4' value='0'></input></td>";    
        echo 
    "<td style='background: #e7c4a0;'><input name='vk' type='text' size='8' maxlength='8' value='".$row['vk']."'></input></td>";
        echo 
    "<td>{$row['anr_intern']}</td>";
        echo 
    "<td>{"nl2br($row['beschreibung']) . "}</td>";
        echo 
    "<td>{$row['bruttoek']}</td>";
        echo 
    "<td>{$row['anr_extern']}</td>";
        echo 
    "<td>{$lieferant}</td>";    
        echo 
    "</tr>";

    }
    echo 
    "</table>"
    Gruß

    Michael

  • #2
    auf jeden fall falsches forum, daher * verschieb *

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

    Kommentar


    • #3
      hast du debugging gemacht?
      error_reporting
      print_r
      etc etc?

      außerdem liegen nicht alle <input>
      in einer <form>

      vermutlich liegt der fehler auch da, wo du das $_POST ausliest

      Kommentar


      • #4
        </input>???

        schalt mal error_reporting() an und lass dir mal $_POST ausgeben
        it's not a bug,
        it's a feature!

        Kommentar


        • #5
          Die POST-Variablen werden nach dem Absenden des Forms abgefragt. Das passt schon.

          Das Problem liegt in dem Form. Nur wo ???
          Am Anfang werden die Felder alle als hidden dem Form mitgegeben und unten dann angezeigt. Dass muss so sein, da HTML-Tidy sondtz wegen der Tabellenstruktur meckert.
          Wie kriege ich nun die beiden benötigten Felder nun dazu, mir die Eingaben zu übergebn???


          Gruß

          Michael
          Gruß

          Michael

          Kommentar


          • #6
            Hallo?
            les mal die Beiträge

            PHP-Code:
            <input name='vk' type='text' size='8' maxlength='8' value='".$row['vk']."'
            liegt nicht in form tags zum beispiel

            so wenig info wie du lieferst kann man aber auch nur mutmaßen

            Kommentar


            • #7
              Das ist ja genau die Stelle, wo es klemmt. Das Form ist ja im Prinzip schon am Anfang komplett definiert:

              PHP-Code:
              echo "<td><form action='index.php?ziel=" $_GET['ziel'] . "&amp;menu=angebote_erstellen' method='post'>
                  <input type='submit' name='zufügen' value='Zufügen'></input>
                  <input name='anzahl' type='text' size='4' maxlength='4'></input>
                  <input name='vk' type='text' size='8' maxlength='8'></input>
                  <input name='anr_intern' type='hidden' value='"
              .$row['anr_intern']."' readonly></input>
                  <input name='beschreibung' type='hidden' value='"
              .$row['beschreibung']."' readonly></input>
                  <input name='bruttoek' type='hidden' value='"
              .$row['bruttoek']."' readonly size='5'></input>    
                  <input name='anr_extern' type='hidden' value='"
              .$row['anr_extern']."' readonly></input>
                  <input name='lieferant' type='hidden' value='"
              .$lieferant."' readonly></input>
                  </form></td>"

              Hier werden dann die Werte eigentlich nur noch ausgegeben:
              PHP-Code:
                      echo "<td style='background: #e7c4a0;'></td>";    
                  echo 
              "<td style='background: #e7c4a0;'></td>";
                  echo 
              "<td>{$row['anr_intern']}</td>";
                  echo 
              "<td>{"nl2br($row['beschreibung']) . "}</td>";
                  echo 
              "<td>{$row['bruttoek']}</td>";
                  echo 
              "<td>{$row['anr_extern']}</td>";
                  echo 
              "<td>{$lieferant}</td>"
              Dabei sind die ersten beiden echos die um die es geht.
              Hier werden neu Werte eingetregen, bzw. vorhandene geändert.

              Das Problem ist nun, wie kriege ich diese an das Form übergebn ???

              Gruß

              Michael
              Gruß

              Michael

              Kommentar


              • #8
                PHP-Code:
                    echo "<td style='background: #e7c4a0;'><input name='anzahl' type='text' size='4' maxlength='4' value='0'></input></td>"
                echo 
                "<td style='background: #e7c4a0;'><input name='vk' type='text' size='8' maxlength='8' value='".$row['vk']."'></input></td>"
                die beiden hier?

                zieh sie doch einfach ins <form>
                alles andere macht doch gar keinen sinn??

                du hast die inputs einmal im form und einmal danach! warum?
                das verstehe ich nicht .

                lass die einfach im form und befülle sie DA mit werten!

                edit:
                . Dass muss so sein, da HTML-Tidy sondtz wegen der
                Tabellenstruktur meckert.
                HTML-Tidy säubert ja auch nur HTML Code und keinen PHP Code
                Zuletzt geändert von BugBite; 02.07.2008, 11:30.

                Kommentar


                • #9
                  Ich kann die ins form ziehen klar. Nur wie krige ich dann meine Eingabe hinein? Die Ausgabe der Zelle (samt der Änderungsmöglichkeit die noch fehlt) kommt ja erst danach.
                  Gruß

                  Michael

                  Kommentar


                  • #10
                    du nimmst deine zwei <input> nach dem <form>
                    und überschreibst damit die <input> im <form>

                    also die beiden, die ich in meinem letzten beitrag genannt habe

                    Kommentar


                    • #11
                      Das ist doch genau mein Problem !
                      Wie mach ich das ???
                      Gruß

                      Michael

                      Kommentar


                      • #12
                        O.O
                        PHP-Code:
                        while($row mysql_fetch_assoc($result))
                        {
                            
                        $suche "&";
                            
                        $ersetzung "&";
                            
                        $lieferant str_replace($suche$ersetzung$row['lieferant']);
                            echo 
                        "<tr>";
                            echo 
                        "<td><form action='index.php?ziel=" $_GET['ziel'] . "&menu=angebote_erstellen' method='post'>
                        <input type='submit' name='zufügen' value='Zufügen'></input>
                            <input name='anzahl' type='text' size='4' maxlength='4'/>
                            <input name='vk' type='text' size='8' maxlength='8' value='"
                        .$row['vk']."''/>
                            <input name='anr_intern' type='hidden' value='"
                        .$row['anr_intern']."' readonly></input>
                            <input name='beschreibung' type='hidden' value='"
                        .$row['beschreibung']."' readonly></input>
                            <input name='bruttoek' type='hidden' value='"
                        .$row['bruttoek']."' readonly size='5'></input>    
                            <input name='anr_extern' type='hidden' value='"
                        .$row['anr_extern']."' readonly></input>
                            <input name='lieferant' type='hidden' value='"
                        .$lieferant."' readonly></input>
                            </form></td>"
                        ;
                            echo 
                        "<td>{$row['anr_intern']}</td>";
                            echo 
                        "<td>{"nl2br($row['beschreibung']) . "}</td>";
                            echo 
                        "<td>{$row['bruttoek']}</td>";
                            echo 
                        "<td>{$row['anr_extern']}</td>";
                            echo 
                        "<td>{$lieferant}</td>";    
                            echo 
                        "</tr>";


                        jetzt wird dein wert $row['vk'] in der Textbox stehen, du kannst diese ändern und gut is'
                        Zuletzt geändert von BugBite; 02.07.2008, 11:59.

                        Kommentar


                        • #13
                          Das funktioniert so nicht, das hatte ich auch schon mal so als Ansatz gehabt. In dem Moment wo man die beiden echos weglässt werden diese beiden Spalten nicht ehr angezeigt. Wenig zielführend.

                          Da muss es noch andere Möglichkeiten geben.
                          Gruß

                          Michael

                          Kommentar


                          • #14
                            Ja wenig zielführend, wenn man die Grundlagen nicht beherrscht
                            siehe DOM

                            wenn du die beiden inputs unten drinnen lassen willst, dann musst
                            du darauf auchten, dass sie auch in einem <form> liegen

                            wenn für die <input> spalten angezeigt werden sollen, dann
                            musste die natürlich mit <td></td> umschließen

                            dennoch versteh ich nicht, warum du die <input>

                            erst in der ersten spalte aneigen lassen willst und dann nochmal

                            edit:
                            du kannst auch problemlos das <form> um die ganze tabelle herumziehen
                            Zuletzt geändert von BugBite; 02.07.2008, 12:59.

                            Kommentar


                            • #15
                              Das das Form eigentlich um alles drum herum muss, was erfasst werden soll ist mri schon klar ! ! !
                              Nur, wenn ich das Form komplett um die Tabelle lege, meckert mich html-tidy an.
                              Daher der Verscuh das anders zu lösen. Bei der Ausgabe der andern Zeilenwerten klappt das ja. Es geht nur darum, dass die beiden Werte nochmal bearbeitet werden müssen.
                              Und da muss es was geben. Frage ist nur was ?
                              Gruß

                              Michael

                              Kommentar

                              Lädt...
                              X