Ankündigung

Einklappen
Keine Ankündigung bisher.

Status u. Wert von Radiobuttons in DB schreiben -> Formular 2x abschicken

Einklappen

Neue Werbung 2019

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

  • Status u. Wert von Radiobuttons in DB schreiben -> Formular 2x abschicken

    Ich schreibe den Wert mehrerer Radiobuttons in eine Tabelle, brauche eigentlich aber den Status 1 oder 0. Das funktioniert soweit bis auf eine Kleinigkeit. Ich muss das Formular 2x abschicken. Beim ersten Mal wird der Wert aktualisiert aber der Status noch nicht. Erst beim 2. Mal, nachdem die Seite noch einmal aufgerufen wurde. Irgend etwas fehlt da.

    PHP-Code:
        <form method ="post">

        <?php
        
    if(isset($_POST["Submit"])){
        
    $ga = (isset($_POST["ga"])) ? $_POST["ga"]:"";


    $sql "UPDATE bw2 SET wert = :ga, a = :a2, b = :b2, c = :c2 WHERE id= 1";
    $statement $pdo->prepare($sql);

    $statement->bindValue(':ga'$_POST["ga"]);
    $statement->bindValue(':a2'$_POST["a2"]);
    $statement->bindValue(':b2'$_POST["b2"]);
    $statement->bindValue(':c2'$_POST["c2"]);

    $update $statement->execute();    

        }

            
    // Abfrage durchführen
            
    $sql "SELECT * FROM bw2 WHERE ID=1";
            
    $result $pdo->query$sql );

            echo 
    "<font size="5">Ausgabe der Datensätze:</font> </br></br>";
           foreach( 
    $result as $row ){
               echo 
    "Eintrag Nr: " $row'id' ] . "<br/>" "-: " $row'wert' ] . "<br/>" .$row'a' ] . "<br/>" .$row'b' ] . "<br/>" .$row'c' ] . "<br/><br/>";
                  }




         if(
    $row['wert'] == "A"){
             
    $a 'checked="checked"';
         }else{
             
    $a '';
         }
          if(
    $row['wert'] == "B"){
             
    $b 'checked="checked"';
         }else{
             
    $b '';
         }
         if(
    $row['wert'] == "C"){
             
    $c 'checked="checked"';
         }else{
             
    $c '';
         }

         if( 
    $row['wert'] == "A"){
             
    $a1 1;
         }else{
             
    $a1 0;
         }

         if( 
    $row['wert'] == "B"){
             
    $b1 1;
         }else{
             
    $b1 0;
         }

        if( 
    $row['wert'] == "C"){
             
    $c1 1;
         }else{
             
    $c1 0;
         }
     
    ?>

        <h2> auswählen: </h2>

        <input type ="radio" name ="ga" value="A" <?php echo $a?> /> A
        <input type ="hidden" name ="a2" value="<?php echo $a1?>" /> <br />
        <input type ="radio" name ="ga" value="B" <?php echo $b?> /> B
        <input type ="hidden" name ="b2" value="<?php echo $b1?>" /> <br />
        <input type ="radio" name ="ga" value="C" <?php echo $c?> /> C    
        <input type ="hidden" name ="c2" value="<?php echo $c1?>" /> <br />

        <p>-----------------------</p>
        <input type ="submit" name="Submit" value="2x klick"/>

     </form>
    Code:
    Tabelle: `bw2`
    `id`, `name`, `wert`, `a`, `b`, `c`
    
    1, 'ga', 'B', 0, 1, 0

  • #2
    Ich seh da nirgendwo einen Status.

    Kommentar


    • #3
      Hallo,
      ich dachte, der Begriff wäre selbsterklärend - aber um jetzt Begriffsklaubereien aus dem Wege zu gehen: ich benötige nicht unbedingt den 'wert' der Radiobuttons, sondern den STATUS der mit '0' oder '1' -> (wenn checked) in den letzten drei if-Abfragen definiert wird und in der Tabelle in a, b, c gespeichert wird. Wird ja auch gespeichert, aber richtig erst beim 2. absenden des Formulars, nachdem der gespeicherte 'Wert' ausgelesen wurde.

      Kommentar


      • #4
        Zitat von Heribert22 Beitrag anzeigen
        Wird ja auch gespeichert, aber richtig erst beim 2. absenden des Formulars, nachdem der gespeicherte 'Wert' ausgelesen wurde.
        So hast du ja schließlich auch dein Programm geschrieben. Die Statuswerte werden im Formular geändert, nachdem du den upgedateten Wert ins Formular geladen hast. Willst du das alles in einem einzigen Update machen, musst du diese Logik natürlich schon im Update-Script ausführen, nicht erst im Formular.

        Kommentar


        • #5
          hmm, ja. und genau an der Stelle komme ich nicht zurecht. Da bräuchte ich mal bitte Hilfe.

          Kommentar


          • #6
            naja, du musst das, was du aktuell im Formular machst in deinem Update-Script machen.

            Andererseits, wenn der Status sich direkt vom Wert ableiten lässt, warum dann überhaupt separat speichern?

            Kommentar


            • #7
              naja, du musst das, was du aktuell im Formular machst in deinem Update-Script machen.
              Aber wie? Das war eigentlich das Problem. Anfänger halt. Da muss man eben fragen, wenn es nicht weitergeht.
              Aber Du hast mir trotzdem sehr geholfen ) Danke für den Denkanstoss.

              Ich habe das Problem jetzt anders gelöst direkt im 'SELECT' des abfragenden Scripts. Eigentlich sollte der Status die Zeilenauswahl einer anderen Tabelle bestimmen. Deswegen auch die separate Speicherung. Das wird jetzt über den 'wert' realisiert.

              Vielen Dank noch mal für die Hilfe.

              Kommentar

              Lädt...
              X