Werte aus Dropdownmenü zum Update übergeben

Malchor

Erfahrenes Mitglied
Ich habe mit Hilfe diverser Hilfeforen ein Dropdownmenü mit PHP auslese erstellt. Nun möchte ich das der ausgewählte Wert übergeben wird um ein Update ausfüren zu können. Genauer genommen soll der Standort (flughafen_id) geändert/upgedatet werden. Kann mir jmd. helfen wie ich diesen Wert an eine Update Datei übergeben kann?

PHP:
    <td><strong>Ich will versetzt werden nach:</strong><br><br></td>
    <td>
 <?php 
$abfrage  ="SELECT flughafenid, flughname FROM  
Flughafen ORDER BY `Flughafen`.`flughafenid` ASC"; 
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_row($ergebnis)) 
{ 
    $select .= '<option value="'.$row[0].' - '.$row[1].'">'.$row[0].' - '.$row[1].'</option>';
} 
$select .= '</select>';
?> 
      <form name="JumpSeat" id="JumpSeat" ACTION="FPS_dead_head2.php" method="post"> 
        <select name="JumpSeat" id="JumpSeat" >
          <option>Wähle einen Flughafen</option>
          <option><?php echo $select;?> 
 </option>
        </select><br>
        <input type="submit" VALUE="Versetzen">
      </form>
      
      
      </td>
 </tr>
 
Die Datei hast du doch selbst im Action-Attribut von der Form angegeben: FPS_dead_head2.php
Und da du als Methode "POST" angegeben hast, stehen die Felder im globalen Post-Array.

Du schliesst dein select 2mal, und die Variable $select sollte vor deiner Schleife initialisiert werden.
 
Zuerst solltest du dir einen Select noch einmal anschauen. Mir scheint, dass du mit der Verschachtelung etwas durcheinander gebracht hast. Bei deinem Code wird deine (nicht einmal ganze) Drop-Down-Liste in ein Option-Feld gepackt. Das wolltest du vermutlich nicht so. Den Select kannst du aufbauen und nur das HTML mit den Options in PHP generieren:

PHP:
 <?php
	$options = "";

	$abfrage  ="SELECT flughafenid, flughname FROM Flughafen"; 
	$ergebnis = mysql_query($abfrage);
	while($row = mysql_fetch_row($ergebnis)) 
	{ 
		$options .= "<option value=\"".$row[0]." - ".$row[1]."\">".$row[0]." - ".$row[1]."</option>";
	} 
?> 
<form name="JumpSeat" id="JumpSeat" action="FPS_dead_head2.php" method="post"> 
	<select name="JumpSeat" id="JumpSeat" >
		<option>Wähle einen Flughafen</option>
		<?php echo $select; ?>
	</select>
	<br>
	<input type="submit" value="Versetzen">
</form>

Die Tabelle updaten geht dann folgendermassen:
- Auf der Empfangsseite die Formularfelder über das $_POST - Array auslesen, den Update-String zusammenbasteln und an die Db absetzen.

So long, Igäl
 
Das wird durch das Methode Post automatisch übermittel, ok.

@Igäl
Leider bleibt die Liste jetzt leer :-(, vorher waren Werte drin :-)
 
Anstatt
PHP:
<option>Wähle einen Flughafen</option>
        <?php echo $select; ?>
das hier:
PHP:
<option>Wähle einen Flughafen</option>
        <?php echo $options; ?>
 
Vielen Dank, mal schauen ob ich das mit dem update jetzt hinbekomme. Rein vom Verständnis muss ich über die Get Funktion jetzt die variable $Option eintragen oder?
 
Ich habe nochmal eine kurze Frage. Besteht die Möglichkeit Einzelne Werte zu limitieren?

Ich habe die Abfrage so angepasst das nämlich nur die Flughäfen angezeigt werden die auch im Flugplan sind. Leider zeigt er mir jetzt alle Flughäfen ca. 10 mal nämlich so oft wie dort auch Flüge von dort angeboten werden s.h. Bild. Mit Limit 1 konnte ich das natürlich nicht beheben.

PHP:
    $options = "";
    $abfrage  ="SELECT `Flughafen`.`flughafenid`, `Flughafen`.`flughname`,`Flugplan`.`flughafenid1` FROM Flughafen, Flugplan Where `Flughafen`.`flughafenid` =  `Flugplan`.`flughafenid1` ORDER BY `Flughafen`.`flughafenid` ASC "; 
    $ergebnis = mysql_query($abfrage);
	    while($row = mysql_fetch_row($ergebnis))
Problem_1.jpg
 
Maniac vielen Dank auf sowas simples wäre ich im Leben nicht gekommen.


Leider lassen die Probleme nicht nach.

Das Updateformular setzt nicht den angeklickten Wert sondern lässt das Feld leer

PHP:
      <?PHP
$pilot_id = $_SESSION["pilot_id"];
$flughafenid = isset($_GET['$options']) ? $_GET['$options'] : null; 
echo "$flughafenid";
mysql_query("UPDATE `piloten` SET `piloten`.`letzter_standort` = '$flughafenid' WHERE `piloten`.`pilot_id` = '$pilot_id'" )  or die("Fehler beim Update: ".mysql_error());
echo "$flughafenid";
ini_set('error_reporting', E_ALL);
?>
 
Was gibt dir denn das aus:
PHP:
$flughafenid = isset($_GET['$options']) ? $_GET['$options'] : null; 
echo "$flughafenid";

wahrscheinlich "null" denn kann so niemals Funktionieren.

Du übergibst im Formular mit der Methode "post", warum suchst du es dann im $_GET. Ein paar Beiträge wieter oben hab ich schon geschrieben das im $_POST steht.

PHP:
if(isset($_POST['JumpSeat']) && $_POST['JumpSeat'] != 0){
$flughafenid = $_POST['JumpSeat'];
// hier dein query....
}
 
Zurück