[HTML/PHP] multiple selections

jbJOGI

Cadet 4th Year
Registriert
März 2004
Beiträge
105
hi,

gestern wollte ich meinem freund helfen ein management system für seinen server zu schreiben, das alle dateien aus einem ordner ausliest, in einer selection liste darstellt und diese nach dem abschicken dann die gewählten einträge in eine datei schreibt.
dazu wollten wir <selection multiple> verwenden.
wenn ich den namen nun aber auf zb. map setze, dann bekommt das php script, an das das form sendet nicht etwa einen array mit die einzelnen selections, die der user angewählt hat, sondern die $_POST["map"] wird nur oft überschrieben. am ende steht dann der letzte ausgewählt wert aus der liste in der variablen.

leider konnte ich nirgends was zu diesem problem finden. in diesem zustand ist das alles ja komplett nutzlos. für was gibt es denn dann solche multiple optionen?!
oder es wird eben doch ein array für die einträge angelegt, den ich nur nich finden konnte. hat hier jemand von euch ne idee?
 
Du kannst als Namen z.B. map[] angeben. Dann ist das am Ende ein Array mit den Einträgen. So gehts wenigstens bei mehrere Input-Feldern.
 
super! vielen dank für die schnelle hilfe!!

hab nun mein bsp so modifiziert und es rennt wunderbar! das map[] als name war die lösung! :)

PHP:
<?php

if(isset($_POST["submit"])){
  echo $_POST["max"]."<br>";
  for($i=0; $i<$_POST["max"]; $i++){
    if(empty($_POST[map][$i]))
      break;
    echo $i.": ".$_POST[map][$i]."<br>";
  }
}else{
  ?>
  
  <form action="test.php" method="post">
    <select name="map[]" multiple>
      <?php
      for($i=0; $i<15; $i++){
        echo "<option value=".$i.">".$i."<br>";
      }
      ?>
    </select>
    <input type="hidden" name="max" value=15>
    <input type="submit" name="submit">
  </form>
  
  <?php
}
?>
 
Kleiner Tipp noch. Wenn du ein echo mit doppeltem Anführungszeichen schreibst, werden die Variablen in dem String geparst. Soll heissen
PHP:
echo "Hallo, ".$name;
ist gleichbedeutend mit
PHP:
echo "Hallo, $name";

Ist zwar jetzt kein großer Unterschied, spart aber ein wenig Schreibarbeit ;).
 
und informatiker sind ja bekannterweise schreibfaul, sieht man ja an C! ;)
 
am schnellsten zu berechnen ist aber ganz klar

PHP:
echo 'Hallo, '.$name;

Desweiteren garantiert es eine saubere Programmierung und "-Tags können ohne besonderes Zeichen ebenfalls ins echo verbaut werden.

Es ist ganz klar besser eine klare Struktur zu bewaren, als schreibfaul zu sein. Das zahlt sich vor allem bei größeren Projekten aus.
 
GeYe schrieb:
am schnellsten zu berechnen ist aber ganz klar

PHP:
echo 'Hallo, '.$name;

Desweiteren garantiert es eine saubere Programmierung und "-Tags können ohne besonderes Zeichen ebenfalls ins echo verbaut werden.

Es ist ganz klar besser eine klare Struktur zu bewaren, als schreibfaul zu sein. Das zahlt sich vor allem bei größeren Projekten aus.
Deswegen mache ich das auch immer so ;). Das oben war nur ein Hinweis, dass es unnütz ist, die Variablen davon zu lösen.
 
Zurück
Oben