2 Werte Übergeben

thehasso

Erfahrenes Mitglied
Hallo zusammen,


Ich hab in ein Optionsfeld cirka 70 Städte. Zu jeder Stadt speichere ich einen Integer Wert, da sich später bei der SQL Abfrage leichter die Städte auslesen kann.
Nun, ich würde aber gerne auch den Stadtnamen mit in der Datenbank abspeichern, den ich beim optionsfeld auswähle.


<option value ='1'> TAachen</option>
<option value ='2'> Alsdorf</option>
<option value ='3'> Dortmund</option>


Also ist es möglich wenn ich Aachen auswähle, nicht nur value 1 mit $_POST übergeben wird, sondern auch die Statdt Aachen als String selbst?



LG und danke
 
Also so nicht, jedenfalls nicht das ich wüsste. Du könntest aber bei value die Stadt mit aufnehmen, z.B. so:
Code:
<option value ='1;Aachen'> Aachen</option>
<option value ='2;Alsdorf'> Alsdorf</option>
<option value ='3;Dortmund'> Dortmund</option>

Jetzt könntest du in PHP mittels explode() den String splitten und dann bekommst du ein Array, in dem die Zahl und der Stadtname drin steht.
 
Naja, das ist eigentlich Pfusch ;-)

Mach es doch so:

Erstelle dir eine Datei "staedte.php":

staedte.php
PHP:
<?php
$staedte = array(
  1 => 'Aachen',
  2 => 'Bremen',
  3 => 'Trier',
  /* usw... */
);
?>

Diese bindest du mittels include in dein Script ein, was das Form aufbaut, und baust mit Hilfe des Array dein Select:

form.php
PHP:
<?php
include 'staedte.php';

echo '<form method="post" action="auswerten.php">';
echo '<select name="stadt">';
foreach($staedte as $key => $stadt)
{
  echo '<option value="' . $key . '">' . $stadt . '</option>';
}
echo '</select>' .
  '<input type="submit"/>' .
  '</form>';

?>

Dann kannst du in dem Script, was das Form auswertet, ebenfalls diese Datei einbinden und dann zu dem entsprechend value-Key den Stadt-Namen besorgen:

auswerten.php
PHP:
<?php
include 'staedte.php';

if( isset($_POST['stadt'] ) )
{
  $stadtKey = intval( $_POST['stadt'] );
  if( array_key_exists( $stadtKey, $staedte ) )
  {
    echo 'Stadt ' . $staedte[ $stadtKey ] . ' wurde ausgewählt<br/>';
  }
}
?>
 
Zurück