Auswahllisten mit Mehrfachauswahl per $_POST übergeben

mkoeni1

Erfahrenes Mitglied
Hallo Leute,

ich habe ein Problem und brauche Eure Hilfe.
Ich habe ein Formular auf dme ich mehrere Torschtützen
auswählen kann. Man kann dann zB. mehrere Scorer auswählen und per _$_POST übergeben, oder?
Ich habe das mit einem Array gelöst scorer[]. Wie kann ich die darin gespeicherten Werte auslesen. ich finde einfach keine Hilfe dazu.

PHP:
<form action='<?php echo $PHP_SELF ?>' method='post'>
<?php
    echo '<table class="mainborder">';   
    echo '<tr><td colspan="2"valign="top">status: (Gegners Sicht)</td>';
    echo "<td><input type='text' name='status' value='$zeile[8]' size='4' maxlength='4'></td></tr>";
    
    echo '<tr><td colspan="3"valign="top">scorer:<br>';
// suche alle potenziellen Scorer aus der DB
$scorer=mysql_query("SELECT * FROM `all_scorer` ORDER BY `scorer_id_pk` ASC");
if (!$scorer) {
  die(mysql_error());
}
$counter = 0;
$scorer;

/* select begin */
 echo '<select name="scorer[]" size="5" multiple>';
 while($row = mysql_fetch_assoc($scorer)) {
        if($counter%2){
          echo "<option>".$row['scorer_id_pk']." ".$row['name']." ".$row['vorname']."</option>";
        }
        else{
          echo "<option>".$row['scorer_id_pk']." ".$row['name']." ".$row['vorname']."</option>";
        }
        $counter++;
}
/* end select */
echo '</select>';
    echo "</td></tr>";
?>
<!-- hidden field -->
     <input type="hidden" name="acteditspieltagwrite" value="actgamewrite" />
 <!-- hidden field -->
    <input type="hidden" name="bname" value="<?php echo ''.$bname.'' ;?>" />
<!-- hidden field -->
    <input type="hidden" name="pass" value="<?php echo ''.$pass.'' ;?>" />     
        
    <tr>
        <td colspan="3"><input type='submit' value='&Auml;ndern'>
        <input type='reset' value='Zur&uuml;cksetzen'><td>
    </tr>
</table>
</form>

Empfänger der Formularwerte:
PHP:
if(isset($_POST["acteditspieltagwrite"]))
{
//POST-Wert Variablen zuorden
....
 
 // scorer input
 $treffer[] = $_POST['scorer[]'];

//error_reporting(E_ALL);
$anfrage ="UPDATE `saison_spiele_0708` SET `spieltag_id_pk` = '$spieltag_id_pk', ... '; ";

Ich bekomme mit:
PHP:
echo  $treffer[0];

nur
Code:
Array

Kann mir jemand Bitte weiterhelfen wie ich alle Torschützen die ich auswähle übergeben bekomme?

Vielen Dank und Gruß
Matze
 
Danke ;-)
Wie kann ich über eine For Schleife erreichen, dass ich mehrere scorer ausgeben kann.
PHP:
for($i=0;i<$_POST['scorer'].length;$i++){
  echo  $treffer['$i'];
}

will er nicht.

Vielen Dank und Gruß
Matze
 
PHP:
$cnt_scorer = count($_POST['scorer']);
for($i = 0; $i < $cnt_scorer; $i++)
{
  echo $_POST['scorer'][$i'];
}

Oder:
PHP:
foreach($_POST['scorer'] as $scorer)
{
  echo $scorer;
}
 
Super Sache, Danke,

jetzt hab ich die Daten, super und wie bekomme ich das Array in die Datenbank?
PHP:
$letztes_spiel=mysql_query("INSERT INTO `saison_2007_2008` VALUES ('', '$datum', '$paarung', '5:1', 'hier muss das Array rein (<- alle Werte anzahl 5)', '$bericht', '$plarz')");

Ich glaube fast es ist besser eine eigene Tabelle zu machen:
Code:
1. -> Hans Maier Spieltag 1
2. -> Udo Maier Spieltag 1
3. -> Max Maier  Spieltag 1
...

Wie bekomme ich das mit einer Schleife gefüllt?

Vielen Dank und Gruß
Matze
 
Du könntest mit [phpf]implode[/phpf] arbeiten und einem Trennzeichen:

PHP:
$scorer = implode('##', $_POST['scorer']);

Danach enthält $scorer sowas wie:
SpielerA##SpielerA##SpielerB##SpielerC

Zum Auslesen kannst du dann mit [phpf]explode[/phpf] arbeiten.
 
Klasse Leistung! Danke.
Hast du auch noch eine Idee für das Umsetzen der anderen Datenbank Tabelle.
In diese möchte ich nicht die Scorer per
PHP:
implode('##', $_POST['scorer']);
setzen sondern für jeden Scorer einen einzelnen Eintrag.
Da müsste über eine for Schleife gehen, denn ich weiß ja wie viele Scorer ich habe.
PHP:
for($i = 0; $i < Länge Scorer Array;$i++){
insert(...);
}

Vielen Dank und Gruß
Matze
 
Hi,

foreach($mein_array AS $_key => $_value){
// $_key = Schlüssel des aktuellen Elements
// $_value = Wert des aktuellen Elements
}

Gruß tyg3r
 
Zuletzt bearbeitet:
Danke deiner Hilfe,

ich habe das jetzt mal so umgesetzt und einen Fehler erhalten:
PHP:
foreach($scorer AS $key => $value){
// $_key = Schlüssel des aktuellen Elements
// $_value = Wert des aktuellen Elements
  $treffer=mysql_query("INSERT INTO `saison_tore_0708` VALUES ('', '$value', '90')");
}

Fehler:
Code:
Warning:  Invalid argument supplied for foreach() in /opt/lampp/htdocs/test/src/sites/backend.php on line 24

Könntest du das leicht berichtigen?

Vielen Dank und Viele Grüße
Matze
 
Fehler:
Code:
Warning:  Invalid argument supplied for foreach() in /opt/lampp/htdocs/test/src/sites/backend.php on line 24

Bedeutet, dass $scorer kein Array ist ;)

PHP:
$scorer = array(
                        'key1' => 'wert1',
                        'key2' => 'wert2',
                        'key3' => 'wert3',
                        'key4' => 'wert4',
               );
foreach($scorer AS $key => $value){
    echo "$key -> $value<br/>";
}

Gruß tyg3r
 
Zurück