Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Checkboxenwerte aus Datenbank ausgeben - Checkboxenwerte in Datenbank einl

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Checkboxenwerte aus Datenbank ausgeben - Checkboxenwerte in Datenbank einl

    Hallo Nutzer!

    Ein Formular soll bei Aufruf bereits die aktuellen Werte aus einer Datenbank enthalten. Bei Textfeldern kein Problem; ich erreiche das so:

    PHP-Code:
    // MySQL-Abfragezeilen

    echo <<<SUBFORM

    <div>
    <form action="ae_zufall_update_do.php" method="post">
    <input name="id" type="hidden" value="
    $id">
    <br>
    <input name="NAME_EINRICHTUNG" size="150" value="
    $row[NAME_EINRICHTUNG]"> Name der Einrichtung
    <br>
    <input name="TRAEGER" size="150" value="
    $row[TRAEGER]"> Tr&auml;ger
    <br>

    </form>
    </div>
    SUBFORM; 
    Meine Frage: Wie erreiche ich den gleichen Effekt (Vorbelegung mit aktuellen Werten) für Checkboxen/Kontrollkästchen?
    Denn checked="checked" darf ja nur gesetzt sein, wenn die Datenbank hier auch eine 1 im Feld hat und keine 0.
    Und: Wie lese ich die aktualisierten Daten (manche weggeklickt, andere angeklickt) per Formular wieder richtig in die DB ein?

    Grüße
    Streethawk68


  • #2
    Hi!
    Probiers mal mit:

    PHP-Code:
    if($row[NAME_EINRICHTUNG]=="ABC")
    {
    echo 
    "<input type=\"radio\" name=\"NAME_EINRICHTUNG\" value=\"ABC\" checked=\"checked\"> ABC<br>";
    }else{
    echo 
    "<input type=\"radio\" name=\"NAME_EINRICHTUNG\" value=\"ABC\"> ABC<br>";
    }
    if(
    $row[NAME_EINRICHTUNG]=="DEF")
    {
    echo 
    "<input type=\"radio\" name=\"NAME_EINRICHTUNG\" value=\"DEF\" checked=\"checked\"> DEF<br>";
    }else{
    echo 
    "<input type=\"radio\" name=\"NAME_EINRICHTUNG\" value=\"DEF\"> DEF<br>";

    Ist aber alles ungetestet und evtl gibt es eine einfachere Lösung

    Kommentar


    • #3
      Zitat von Crazynet Beitrag anzeigen
      Ist aber alles ungetestet und […]
      … falsch. Zweimal die komplette Zeile mit der radio-Box zu notieren (einmal mit checked und einmal ohne) ist Unsinn, zudem ist $row[NAME_EINRICHTUNG] falsch da es die Konstante NAME_EINRICHTUNG höchstwahrscheinlich nicht gibt (richtig: $row['NAME_EINRICHTUNG']). Auch war es noch nie sinnvoll HTML-Code der doppelte Anführungszeichen enthält in einem String zu notieren der von doppelten Anführungszeichen begrenzt wird - man spart sie das "Entschärfen" der Anführungszeichen wenn man einmal einfache Anführungszeichen verwendet (also echo '<foo bar="abc">'; oder echo "<foo bar='abc'>"

      Besser wäre sowas:
      PHP-Code:
      echo '<label><input type="radio" name="NAME_EINRICHTUNG" value="ABC"'.($row['NAME_EINRICHTUNG']=='ABC'?' checked="checked"':'').'> ABC</label>'
      @Streethawk68: du vernachlässigst den Kontextwechsel! Außerdem gibt es keinen Grund Umlaute zu verst&uuml;mmeln.

      Kommentar


      • #4
        Kann man innerhalb eines HTML-Bereichs auf Variablen(inhalte) zugreifen?

        Hallo tk1234!

        Es stellt sich bei deiner Lösung die Frage, ob man innerhalb eines HTML-Bereiches auf Variablen(inhalte) zugreifen kann. Bedenke: Du bist da außerhalb von

        PHP-Code:
        <?php

        ?>
        Grüße
        Streethawk68

        Ergänzung: Ich liege falsch. Das ist ja PHP-Code (echo). Aber deine Syntax ist dennoch falsch. Notepad++ stellt "echo" nicht blau dar.

        Kommentar


        • #5
          Zitat von Streethawk68 Beitrag anzeigen

          Aber deine Syntax ist dennoch falsch. Notepad++ stellt "echo" nicht blau dar.
          Ich kann bei der Syntax oben keinen Fehler erkennen. Nur weil dein Notepad eine anderes SyntaxHighlighting verwendet ist ein Befehl nicht falsch.
          Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden.
          - Linus Torvalds

          Kommentar


          • #6
            Ein Problem besteht noch

            Hallo Nitamud,

            ich muss mich entschuldigen; die Syntax ist schon sehr gut: die Checkboxen (übrigens keine Radiobuttons) werden ihren ja/nein-Werten gemäß angezeigt. Ein Problem besteht noch: bei Textfeldern werden nur Zeichenketten bis zum ersten Leerzeichen ausgegeben, d.h.: Wo z.B. stehen muss "Altenzentrum Papst-Johannes-Stift" steht nur "Altenzentrum". Ist das noch lösbar?

            Grüße
            Streethawk68

            Ergänzung: Code
            PHP-Code:
            echo '<label><input name="NAME_EINRICHTUNG" size="150" value='.($row['NAME_EINRICHTUNG']).'> Name der Einrichtung</label>'

            Kommentar


            • #7
              Zitat von Streethawk68 Beitrag anzeigen
              Ein Problem besteht noch: bei Textfeldern werden nur Zeichenketten bis zum ersten Leerzeichen ausgegeben, d.h.: Wo z.B. stehen muss "Altenzentrum Papst-Johannes-Stift" steht nur "Altenzentrum". Ist das noch lösbar?
              Natürlich. Schau dir den erzeugten PHP-Code an, du wirst feststellen dass um den Wert des value-Attributs die Anführungszeichen fehlen - ergänze sie und behandel den Kontextwechsel dann wird der Text richtig ausgegeben.

              Kommentar


              • #8
                Ich bin sehr zufrieden

                Hallo!

                Mit dem Ergebnis bin ich sehr zufrieden, danke!

                Grüße
                Streethawk68

                Kommentar

                Lädt...
                X