php Formular : änderungen senden

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

  • php Formular : änderungen senden

    Hallo zusammen
    ich stehe im Moment einfach vor einem Problem mit einem Formular mit php und kann mir selber absolut nicht helfen.
    Also es geht um folgendes.

    Ich hole Daten von der DB und zeige diese in einer Tabelle an. Der User hat nun die Möglichkeit, diese Daten abzuändern und die Änderungen zu speichern. Aber das mit dem Speichern klappt bei mir nicht.

    Code :

    **** AUFBAU DER TABELLE, RESP. DES FORMULARS ***

    <?php

    $sql_checkboxes = "SELECT name, beschreibung, hinzugefuegt FROM checkboxes";
    $result_checkboxes = mysql_query($sql_checkboxes);
    ?>

    <tr>

    <form <?php if ($function != "gesperrt") { echo "action=\"".$PHP_SELF."?row_checkboxes=".$row_checkboxes."\""; } ?> method="post">

    <td>
    <table cellpadding="5" cellspacing="0" border="0" width="99%">
    <?php
    while($row_checkboxes = mysql_fetch_array($result_checkboxes)) {
    $checkbox_name = $row_checkboxes[name];
    $checkbox_beschreibung = $row_checkboxes[beschreibung];
    $checkbox_hinzugefuegt = $row_checkboxes[hinzugefuegt]?>
    <tr class="rowclass<?php echo ++$zaehler%2 ?>">
    <td align="left">
    <input type="Checkbox" name="<?php echo $checkbox_name ?>" value="1"<?php if($checkbox_hinzugefuegt){ echo "checked";} ?>><?php echo $checkbox_name ?>
    </td>
    <td colspan="2">
    <input type="Text" name="<?php echo $checkbox_name ?>" value="<?php echo $checkbox_beschreibung ?>" size="30" maxlength="64">
    </td>
    </tr>
    </table>
    </td>

    </form>

    </tr>


    *** SPEICHERN DER ÄNDERUNGEN***
    $sql_save = "UPDATE checkboxes SET beschreibung = '$checkbox_beschreibung', hinzugefuegt = '$checkbox_hinzugefuegt' WHERE name = '$checkbox_name';";

    mysql_query($sql_save)





    --> Das Speichern funktioniert nicht, weil ich ja via diesem SQL nicht auf die Formulardaten zugreife.
    Aber auch wenn ich es mit POST versuche, klappts nicht.

    $sql_save = "UPDATE checkboxes SET beschreibung = '."$_POST["checkbox_beschreibung"]."', hinzugefuegt = '."$_POST["checkbox_hinzugefuegt"]."' WHERE name = '."$_POST["checkbox_name""';";


    Kann mir bitte jemand einen Tipp geben, wie ich durch mein Formular hindurch gehe und alle änderungen speichre?
    Weiss mir echt keinen Rat mehr.

    Merci!

  • #2
    Bitte benutze die php-tags des Forums. So möchte sich keiner Deinen Code durchlesen.
    Das Speichern funktioniert nicht, weil ich ja via diesem SQL nicht auf die Formulardaten zugreife.
    Welche Fehlermeldungen gibt es? Gibt es überhaupt welche?
    PHP-Code:
    error_reporting(E_ALL); //??
    mysql_error(); //?? 
    hast Du Dir Deine Post-Daten mal ausgeben lassen?

    Kommentar


    • #3
      Hmm
      Vielleicht solltes du es mal so Probieren:

      <input type="text name="name" value="<?php echo $checkbox_beschreibung ?>" size="30" maxlength="64">
      MFG ForYouNet

      -----------------------------
      SEE YOU @ foryounet.de
      -----------------------------
      http://foryounet.de

      Kommentar


      • #4
        via php-tags formattiert

        sorry, ich wusste nicht, dass es hier php-tags gibt. Aber jetzt hab ich's formatiert :

        **** AUFBAU DER TABELLE, RESP. DES FORMULARS ***

        PHP-Code:
        $sql_checkboxes "SELECT name, beschreibung, hinzugefuegt FROM checkboxes";
        $result_checkboxes mysql_query($sql_checkboxes); 
        <tr>

        <form
        PHP-Code:
          if ($function != "gesperrt") { 
        echo 
        "action=\"".$PHP_SELF."?row_checkboxes=".$row_checkboxes."\""; } 
        method="post">

        <td>
        <table cellpadding="5" cellspacing="0" border="0" width="99%">

        PHP-Code:
        while($row_checkboxes mysql_fetch_array($result_checkboxes)) {
        $checkbox_name $row_checkboxes[name];
        $checkbox_beschreibung $row_checkboxes[beschreibung];
        $checkbox_hinzugefuegt $row_checkboxes[hinzugefuegt
        <tr class="rowclass
        PHP-Code:
          echo ++$zaehler%
        ">
        <td align="left">
        <input type="Checkbox" name="
        PHP-Code:
          echo $checkbox_name 
        " value="1"
        PHP-Code:
          if($checkbox_hinzugefuegt){ echo "checked";} 
        >
        PHP-Code:
          echo $checkbox_name 
        </td>
        <td colspan="2">
        <input type="Text" name="
        PHP-Code:
          echo $checkbox_name 
        " value="
        PHP-Code:
          echo $checkbox_beschreibung 
        " size="30" maxlength="64">
        </td>
        </tr>
        </table>
        </td>

        </form>

        </tr>


        *** SPEICHERN DER ÄNDERUNGEN***
        $sql_save = "UPDATE checkboxes SET beschreibung = '$checkbox_beschreibung', hinzugefuegt = '$checkbox_hinzugefuegt' WHERE name = '$checkbox_name';";

        mysql_query($sql_save)





        --> Das Speichern funktioniert nicht, weil ich ja via diesem SQL nicht auf die Formulardaten zugreife.
        Aber auch wenn ich es mit POST versuche, klappts nicht.

        $sql_save = "UPDATE checkboxes SET beschreibung = '."$_POST["checkbox_beschreibung"]."', hinzugefuegt = '."$_POST["checkbox_hinzugefuegt"]."' WHERE name = '."$_POST["checkbox_name""';";

        Kommentar


        • #5
          Hallo gruenspan

          Danke für Dein Feedaback!

          Wenn ich das erstgenannte SQL anwende (also ohne POST) erhalte ich via error_reporting erhalte ich folgende Meldungen :

          [COLOR=orangered]
          *********
          Notice: Use of undefined constant name - assumed 'name' in /web/htdocs/akquisition/checkboxes.phtml on line 127

          Notice: Use of undefined constant beschreibung - assumed 'beschreibung' in /web/htdocs/akquisition/checkboxes.phtml on line 128

          Notice: Use of undefined constant hinzugefuegt - assumed 'hinzugefuegt' in /web/htdocs/akquisition/checkboxes.phtml on line 129
          *********
          [/COLOR]


          Diese Meldung wiederholt sich pro Zeile in der Tabelle



          Beim SQL mit den POST erhalte ich gar keine Anzeige, resp. Fehler, also wird wohl die Syntax nicht stimmen?

          Kommentar


          • #6
            PHP-Code:
            $sql_save "UPDATE checkboxes SET beschreibung = 
            '."
            $_POST["checkbox_beschreibung"]."', hinzugefuegt = 
            '."
            $_POST["checkbox_hinzugefuegt"]."' WHERE name = 
            '."
            $_POST["checkbox_name""';"
            Fällt Dir was auf?

            Kommentar


            • #7
              Ja, das habe ich vorhin schon entdeckt. Und die fehlende ]-Klammer hinzugefügt.
              Es klappt immernoch nicht...

              Ich habe dann versucht, auf die Variable selber (also $...) zuzugreifen, aber auch das klappt nicht und auch dort ohne eine Fehlermeldung.
              PHP-Code:
              $sql_save2 "UPDATE checkboxes SET beschreibung = 
              $_POST['$checkbox_beschreibung'], hinzugefuegt = 
              $_POST['$checkbox_hinzugefuegt'] WHERE name = 
              $_POST['$checkbox_name'];"

              Mach ich bei meiner Verarbeitung vielleicht grundsätzlich was falsch?
              Ich war schon auf vielen Tutorials zur Formularbearbeitung, aber es hat mich bei meinem konkreten Problem nicht weitergebracht.

              Kommentar


              • #8
                Prüfe doch mal, ob nach dem absenden Deines Formulars irgendwas im POST-Array steht. Am besten mit:
                PHP-Code:
                echo "<pre>";
                print_r($_POST);
                echo 
                "</pre>"
                Und überarbeite deine Schreibweise von SQL-Anfragen.
                nicht so:
                PHP-Code:
                $sql_save2 "UPDATE checkboxes SET beschreibung = $_POST['$checkbox_beschreibung'] 
                sondern so:
                PHP-Code:
                $sql_save2 "UPDATE checkboxes SET beschreibung = '".$_POST['checkbox_beschreibung'].'" 
                Zuletzt geändert von gruenspan; 12.08.2006, 15:50.

                Kommentar

                Lädt...
                X