PHP Variable + String zusammenführen

  • Ersteller Ersteller AppZ
  • Erstellt am Erstellt am
So, ich habe mal ein wenig weitergemacht und ziemlich viel ausprobiert.
Ich erkläre nochmal mein Problem. Aus einer Datenbank werden mehrere Datensätze mit unterschiedlichen ID's ausgelesen. Für jeden Datensatz wird ein eigener Button angelegt. Wenn ich einen der Buttons Drück, soll auf die edit.php weitergeleitet werden. Ich möchte auf der edit.php dann die ID des zu dem Button gehörigen Datensatzes weiterbenutzen. Ich habe dazu jetzt folgenden Code geschrieben.

<form action="edit.php" method="post">
<input type="submit" name="<?php echo $va2['ID']?>" value="Bearbeiten">
</form>

<?php
if(isset($_POST[$var2['ID']]))
{
$_SESSION['char']=$var2['ID'];
}
?>

Das Problem ist, dass die übergebene Variable immer die, des letzten Datensatzes ist. Wie kann ich das Problem lösen?

Der gepostete Code steht in einer For-Schleife, die die Buttons erstellt.
 
for-Schleifen sind einfach, wirkungsvoll... und in 90% der Fälle die falsche Wahl. Stichwort foreach()
 
Wenn du mal etwas debuggen willst:

F12 drücken und mal auf den Netzwerkreiter gehen und mal schauen, was über die Leitung geht.
Denk daran, dass HTTP stateless ist, ich denke, dann wirst du erkennen können, warum es so ist, wie es ist.
(Denk nicht, ich will dir die Lösung nicht sagen, ehrlich gesagt denke ich, dass du einen Denkfehler in deinem Konzept hast.)

Hier mal ne Lösung, die definitiv funktioniert...
Code:
<html>
<head><title></title></head>
<body>
<?php
function button_id($name){
	$matches=preg_grep('/^'.$name.'\d+$/',array_keys($_POST));
	if(count($matches)==0)
		return false;
	return substr($matches[0],strlen($name))-0;
}
var_dump(button_id('editbutton'));
var_dump(button_id('edittest'));
?>
<!doctype html>

<form method="post">
<input type="submit" name="editbutton1" value="eins">
<input type="submit" name="editbutton2" value="zwei">
<input type="submit" name="editbutton3" value="drei">
<?php 
for($i=0;$i<100;++$i){?>
<input type="submit" name="edittest<?php echo $i;?>" value="<?php echo crc32($i);?>"><br>
<?php }?>
</form>
</body>
</html>
 
Zurück
Oben