Frage zu $_POST und einem Array

xtramen01

Erfahrenes Mitglied
Hallo Leute,

habe ein kleines Problem.
Vielleicht bin ich ein wenig überarbeitet, aber ich komm einfach nich drauf.

Habe mehrere Checkboxen:

HTML:
<input type="checkbox" name="id[1]" value="1">
<input type="checkbox" name="id[1]" value="2">
<input type="checkbox" name="id[1]" value="3">

<input type="checkbox" name="id[2]" value="4">
<input type="checkbox" name="id[2]" value="5">
<input type="checkbox" name="id[2]" value="6">

Ich muss die Werte welche natürlich per POST übeemittelt werden in ein Array bekommen das wie folgt ausschaut.

Code:
Array (  [1] => 1  [1] => 2  [1] => 3 [2] => 4  [2] => 5  [2] => 6)

Ich bekomme immer nur jeweils einen Wert übermittelt.

Code:
Array (  [1] => 1 [2] => 4 )


Könntet Ihr mir da vielleicht mal ein wenig unter die Arme greifen? Wäre echt super dankbar dafür!

Gruss
 
Zuletzt bearbeitet:
Hi

versuche mal die eckigen Klammern leer zu lassen. Oder gibt den Checkboxen doch unterschiedliche Namen ;)
 
Ich hätte auch nichts anderes erwartet, als das was du erhälst, denn schließlich belegst du jeden Schlüssel mit drei möglichen Werten. An diesem Punkt müsste dir spätestens bewusst werden, dass doch jeder Schlüssel nur einen Wert haben kann. Lös dein Problem vielleicht lieber so:
HTML:
<input type="checkbox" name="id[1][]" value="1" />
<input type="checkbox" name="id[1][]" value="2" />
<input type="checkbox" name="id[1][]" value="3" />

<input type="checkbox" name="id[2][]" value="4" />
<input type="checkbox" name="id[2][]" value="5" />
<input type="checkbox" name="id[2][]" value="6" />
 
Danke erstmal an alle.

versuche mal die eckigen Klammern leer zu lassen. Oder gibt den Checkboxen doch unterschiedliche Namen

Die Keys sind aber Variabel und nicht statisch und ich brauche die Keys.
Jeder Key, in meinem Beispiel 1 und 2, stellt eine Gruppe dar, welche ich später brauche für die DB Abfrage.
Wenn ich nun die Klammern leer lasse dann bekomme ich zwar das gewünscte Array aber leider ohne die nötigen Keys.

Wenn ich die Namen unterschiedlich mache dann weis ich nicht wie ich die Daten dann in ein Array bekomme bzw. wie ich die POST Daten weiterverarbeiten soll, da die Namen ja Variabel sind.

Selbes Problem dann auch wenn ich das so mache: id[1][].

Gruss
 
Ich verstehe nicht ganz, was du jetzt damit meinst, aber du weißt schon, dass bei meiner Variante dann folgendes rauskommt?
Code:
// array(1 => array(0 => '1', 1 => '2', 2 => '3'))
// Werte in dem Array variieren natürlich, je nachdem welche Felder du markiert hast
$_POST[1];
 
Ok klar.
Danke dir.

Eine Frage noch.

Wie bekomme ich nun folgendes Array zusammengebaut:

Array (
[1] => 1
[1] => 2
[2] => 3
[2] => 4
)

So klappts irgendwie nich:

PHP:
$array = $_POST['id'];

foreach($array as $key => $value){
   foreach($array[$key] as $b){
   $params[] = array($key => $b);
  }
}
Gruss
 
Zuletzt bearbeitet:
So ein Array ist technisch nicht möglich, da jeder Key immer nur einen entsprechenden Wert haben kann und du den ja quasi überschreibst indem du Array[1] => 1 und danach Array[1] => 2 setzt.

Was höchtstens geht ist
Array[1][1] => 1
Array[1][2] => 2

Also nen mehrdimensionales Array.
 
Na gut :-(

Ich hab jetzt folgendes Array:

Code:
Array ( [0] => Array ( [1] => 4 ) 
        [1] => Array ( [1] => 3 ) 
        [2] => Array ( [2] => 2 ) 
        [3] => Array ( [2] => 1 ) )

Eigentlich müsste folgendes doch funktionieren:

PHP:
while ( list( , list($option, $value) ) = each( $params ) ) {

              echo $attributes_ids = '{' . ( int )$option . '}' . ( int )$value;

}

Leider bekomme ich nich die gewünschte Ausgabe:

Code:
{1}4{1}3{2}2{2}2

Wenn ich das hab dann bin ich am Ziel :-)

Gruss und dankeschön für die Unterstützung
 
Versuch es mal so:
PHP:
while(list($key, $value) = each($params)) {
    $key = key($value);
    echo '{'.$key.'}'.$value[$key];
}
 
Zurück