• Hoi,
    ich habe folgendes Problem mit PHP/HTML:
    Ich habe da ne Tabelle in welcher man einstellungen festlegen kann. Diese Tabelle (in HTML) entspricht der Tabelle in meiner Datenbank. Jedoch sind da zwei checkboxen die in der Tabelle als 0 oder 1 abgespeichert werden. Jedoch übermittlet der FF(habe IE & Co nich getestet) eine nicht-angehakte-checkbox nicht, sodass der Eintrag fehlt. Das wäre ja noch zu korrigieren, wenn ich nicht (aus anderen Gründen) im ausgabe-script schreiben müsste:

    PHP
    foreach ($foo as $bar) {
         // [...]
         "<input ... name=\"".$id."[]\">[...]";
         // [...]
    }

    Wie bekomme ich das jetzt (möglichst ohne JS) auf die reihe, die checkbox trotzdem zu übermitteln?

    P.S.: Hab schon gegoogelt, aber Radiobuttons sind in meiner Tabelle mega unpassend und das würde auch die Usabillity angreiffen. Ich hab die Hoffnung noch nich aufgegeben ;)

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (28. März 2010 um 14:28)

  • Hö du kannst doch mit PHP überprüfen ob die Checkbox ausgewählt wurde, wenn die POSTVariable eben nicht vorhanden ist, dann wurde sie nicht ausgewähl, wo ist das Problem

  • ich hab die Tabelle im HTML. Die Wird aber mit PHP erstellt.

    Und beim reinschreiben hab ich 2 foreaches, eines für alle id[], etwa so:

    PHP
    foreach ($_POST as $id=>$ar2)

    und auf jedes $ar2 kommt dann nochmal ein Foreach, des den UPDATE-Query baut. aber wenn eine (oder beide) checkboxen nicht angehakt sind, zerfetzts den Query. Und deswegen will ich die unangehakte checkbox auch übermitteln.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Aus SelfHTML:

    Zitat

    Checkboxen definieren
    Checkboxen sind eine Gruppe von ankreuzbaren Quadraten, bei denen der Anwender keine, eins oder mehrere auswählen kann. Die Werte von ausgewählten Checkboxen werden beim Absenden des Formulars mit übertragen.

  • Das is schon klar.

    Zitat von Tobse


    Jedoch übermittlet der FF(habe IE & Co nich getestet) eine nicht-angehakte-checkbox nicht


    Demnach auch alle anderen auch nicht. Und was soll ich jetzt daraus lernen? Mehr also vorher weiss ich auch nicht, außer eben, dass ich die anderen nicht testen muss ;)

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Nein kann ich nicht. das wird als Array übergeben. (siehe $id."[]) . Ich könnte zwar ürüfen ob das Array nun länger bzw. kürzer ist aber dann weiss ich noch nich, welche Checkbox Fehlt. Kann man mit HTML evtl keys vergeben?

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • PHP
    <?php
       if (isset ($_POST['ids']))
          print_r($_POST['ids']);
    ?>
  • Das wäre die lösung, dann ist aber das eingabefeld nicht im array und damit gehts wieder nich. Gehen würds auch aber die Tabelle kann eben unendlich viele zeilen haben. Ich nehm jetzt erstmal radiobuttons und wenn sich noch was erbigt werd ich das daneknd annehmen xD. Trotzdem danke @alle.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Das würde wieder asl solches klappen, aber ich hab das ja in nem foreach (). Damit sind das feld und das checkbox-array zwei durchläufe. Sorry, iwie solls nich sein. Werd ich wohl auf JS zurückgreifen müssen.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Das würde wieder so an sich einwandfrei klappen, aber das is ja in nem foreach() . Somit wäre das feld und das array ein durchgang, da aber je durchgang ein Query entsteht, klappt das bei mir auch nich, sorry.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Es wäre vielleicht nicht schlecht, wenn du uns mal den genauen Tabellenaufbau zeigst und das Problem mal präzise beschreibst. Bisher ist das alles nur sehr schwammig ausgedrückt.

  • Ok. die Tabelle:

    Code
    [FONT=Courier New]link_name|navi_top|navi_clm|order
    ---------+--------+--------+-----
    Home     | 1      | 1      | 1
    ---------+--------+--------+-----
    Impressum| 0      | 1      | 2
    ---------+--------+--------+-----
    FAQ´s    | 1      | 0      | 3
    [/FONT]


    Das ganze dient zur speicherung von navigations-links. Sie werden in der seite mit ORDER BY `order` ausgegeben. navi_top heisst, ob der link in der Navi unterm Header angezeigt wird, navi_clm ob in der Navi in einer Spalte.
    Die Dabelle wird jetzt ausgegeben (Sie hat noch eine weiter spalte, ist aber hier nicht von belang)
    Der Benutzer kann eben diese 4 Spalten ändern und da wollte ich für navi_top und navi_clm eine Checkbox machen. Aber das ganze soll wieder variabel eingetragen werden (was auch sonst xD) aber das klappt nich, weil eben die Fehlenden Checkboxen nicht übertragen werden. Die Einzig mögliche lösung wären Radiobuttons, aber dann könnte man keinen link in beiden gleichzeitig anzeigen lassen. Und da is mein Problem.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Man soll also was an den Werten ändern können (Einstellung der Links)? Wo ist das Problem?

    Wenn nix gegeben wurde - änder es halt nicht :O

    Bei der Erstellung kannst dann auch ein standardwert definieren fals nichts ausgewählt wurde....

  • Ich verstehs immer noch nicht ganz, aber wenn es wie du meinst echt keine Lösung gibt(versteh nicht warum) kannst du immer noch HIDDEN INPUT Felder verwenden

    mfg

  • Jap, hab ich jetzt. Ich hab mir nen jQuery Plugin geschrieben (da jQuery auf der Page sowieso viel verwendet wird) und jetzt klappts. Aber eben nur mit JS, was ich ja am Anfang nicht haben wollte, geht aber net ohne.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Jap, hab ich jetzt. Ich hab mir nen jQuery Plugin geschrieben (da jQuery auf der Page sowieso viel verwendet wird) und jetzt klappts. Aber eben nur mit JS, was ich ja am Anfang nicht haben wollte, geht aber net ohne.


    Geht bestimmt ohne;)

    Aber JS ist ja nix verkehrtes


    mfg