Array richtig mit Checkboxwerten füllen

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

  • Array richtig mit Checkboxwerten füllen

    Hallo an alle,

    hab da ein kleines problem:

    Ich gebe in eine while schleife alle datensätze meine Datenbank in einer Tabelle aus.
    In meine Datenbank sind auch die werte für Checkboxen vorhanden (Aktiviert JA(1) oder NEIN(0));

    Falls jetzt eine Checkbox aktiviert oder deaktiviert wird will ich nachdem mann das Formular abschickt eine Array füllen mit der ID und dem Checkboxwert.
    Leider ist das so wie ich das hier gemacht habe nicht möglich da die Variable die mit dem Formularfeldnamen deklariert wird immer denn wert der ersten checkbox nimmt oder so ähnlich.
    Jeden falls, schreibt er immer denn gleichen wert in das array!
    Wie kann man das anders lösen!

    PHP-Code:
    while ($row2 mysql_fetch_object($result_2))
    {
                   
    $os_sa_feature_featurename                        $row2->featurename;
                  
    $os_sa_feature_beschreibung                        $row2->beschreibung;
                  
    $os_sa_feature_dateiname                            $row2->dateiname;
                  
    $os_sa_feature_betroffene_datei                $row2->betroffene_datei;
                  
    $os_sa_feature_version                                $row2->version;
                  
    $os_sa_feature_aktiviert                            $row2->aktiviert;
                    
    $os_sa_feature_id                                            $row2->id;
      
        
    // If abfrage ob feature aktiviert ist oder nicht
      
    IF($os_sa_feature_aktiviert) { $checked "checked";} ELSE { $checked ""; }
     
      
    // Echo für das ausgegeben meiner Daten aus der DB in eine HTML Tabelle    
      // eine zeile
        
    echo'
          <tr>
            <td width="44" height="20" align="left"><font face="Arial" size="2">'
    .$nr.'</font></td>
                    <td width="225" height="20" align="left"><font face="Arial" size="2">'
    .$os_sa_feature_featurename.'</font></td>
                    <td width="225" height="20" align="left"><font face="Arial" size="2">'
    .$os_sa_feature_beschreibung.'</font></td>                
            <td width="225" height="20" align="left"><font face="Arial" size="2">'
    .$os_sa_feature_dateiname.'</font></td>
            <td width="225" height="20" align="left"><font face="Arial" size="2">'
    .$os_sa_feature_betroffene_datei.'</font></td>
            <td width="225" height="20" align="left"><font face="Arial" size="2">'
    .$os_sa_feature_version.'</font></td>
            <td width="65" height="20" align="left"><input type="checkbox" name="aktiviert_form" value="1" '
    .$checked.'></td>
          </tr>'
    ;

        
    // Array füllen
        
    $feature_array[0][$id_zaehler] = $os_sa_feature_id;
        
    $feature_array[1][$akt_zaehler] = $aktiviert_form;
        
        
    // Zähler hochzählen
        
    $nr++;                                                    //Variable zur Anzeige der Zeilennummer wird um ein hochgezählt
        
    $id_zaehler++;                                    // Array Zähler                                
        
    $akt_zaehler++;                                  // Array Zähler


  • #2
    kann es sein, dass "aktiviert" KEIN interger wert ist (spalte als char, varchar, enum, etc.... definiert)?
    dann änder die spalte oder versuchs mal so:
    PHP-Code:
    IF((int)$os_sa_feature_aktiviert
    Kissolino.com

    Kommentar


    • #3
      Doch doch "aktiviert" ist schon ein int wert!
      Das ist ja aber gar nicht das problem.

      das Problem ist das diese zeile:

      PHP-Code:
      <td width="65" height="20" align="left"><input type="checkbox" name="aktiviert_form" value="1" '.$checked.'></td
      nur eine variable füllt!

      und das ist natürlich doof!
      Ich brauch wenn ich mehrere Checkboxen habe auch mehrer Variablen füllen.
      Ist es möglich das ich der Variable "aktiviert_form" eine laufende Nummer verpasse damit auf mehrere variable zugreifen kann?

      gruß
      ODSG

      Kommentar


      • #4
        quark ... prüfe lieber mal explizit, ob $os_sa_feature_aktiviert wirklich ein int ist oder nicht ... zur not machs halt so:
        PHP-Code:
        IF($os_sa_feature_aktiviert == 1
        // oder
        IF($os_sa_feature_aktiviert == '1'
        du bist ja innerhalb einer schleife und $os_sa_feature_aktiviert wird immer überschrieben. nur greift imho deine bedingung nicht.
        Kissolino.com

        Kommentar


        • #5
          mhhh ja also da hast du schon Recht, aber ich denk da hast du mich zum Teil falsch verstanden:

          Einfaches Beispiel:

          Du kennst doch bestimmt so was wenn man z.B. bei nem Onlineshop ist
          und da dann mit Boxen markieren kann welche Produkte ich in den Warenkorb haben will.
          Da muss er ja auch irgendwie ein Array erstellen welches Produkt ich ge-
          wählt habe. Ich könnte natürlich pro Zeile die ich ausgeben lasse einfach
          im FormFeld also:

          <input type="checkbox" name="<?php echo"aktiviert_form".$id_DB;?>" value="1" $checked oder halt nicht>

          Einen Sufix oder PRäfix?! Anhängen und dann wenn ich auf Submit gegangen bin einfach halt dann überprüfen welche $variable gefüllt ist.

          Aber das währe bestimmt etwas performance intensiv und auch bestimmt
          auch nicht die eleganteste Lösung...

          Grüße

          Kommentar


          • #6
            das solltest du über arrays lösen => name="check[]" oder name="check[id]" ... einfach mal suchen, das gabs hier schon sehr häufig
            Kissolino.com

            Kommentar

            Lädt...
            X