![]() |
[PHP]: Variabel mit Variabelinhalt
schwierig einen selbsterklärenden Titel zu finden... also nochmal, da das wohl kaum einer verstanden hat:
Ich werte mit PHP ein formular aus. Dafür habe ich erstmal diesen array: $felder =array("Nickname", "Vorname", "Nachname", "email", "Strasse", "PLZ", "Ort", "Telefon", "Handy", "ICQ"); In dem Formular habe ich ganz viele checkboxen. Um genau zu sein, sind dort genausoviele checkboxen, wie der array elemente hat. Und die heißen sogar genau so. Um jetzt aufzulisten, was der User ausgewählt hat, dachte ich, man könnte doch einfach mit einer foreach-schleife alle elemente des arrays durchlaufen lassen, und so, mit nur einem Befehl von allen checkboxen anzeigen lassen können, ob die checkboxen angewählt wurden oder nicht... Bloß wie? Meine erste idee war dies so zu tun: foreach($felder as $f) { $inhalt .="Feld ".$f." ist aktiviert??: ".$_POST[$f]." "; } Das hat jedoch nicht geklappt. Normalerweise hole ich variabeln dieser Art immer mit auto-globals in den code. Also teste ich ein wenig und ich fand' heraus (zumindest glaube ich das), dass $_POST immer leer ist. --> Ich muss wohl auf etwas anderes zurückgreifen. Meine zweite Idee: dies so zu tun: foreach($felder as $f) { $inhalt .="Feld ".$f." ist aktiviert??: ".eval("$".$f)." "; } Dann kommen aber errors: Parse error: parse error, unexpected $end in [..]stufenliste.inc.php(12) : eval()'d code on line 1 Und zwar kommt der Fehler ganz oft. Für jede Zeile inmal. Was mache ich falsch? Wie muss ich es anstellen, damit es funzt? |
Re: [PHP]: Variabel mit Variabelinhalt
Hi yankee,
wen $_POST wie du sagst immer leer ist, dann solltest du mal überprüfen ob das form auch mit action="post" abgesendet wird. Evtl. solltest du mal $_GET probieren. Ansonsten seh ich in dem Code keinen Fehler Greetz alcaeus |
Re: [PHP]: Variabel mit Variabelinhalt
Ja, form hatte keine method angegebn. Ich habe mal post reingeschrieben, aber es funzt immernoch nicht. Aber ich weiß jetzt, warum die zweite Variante mit eval nicht funzt:
Die Variable ist nicht global und der code wir in einer function ausgeführt... Ich musste vor die Variable also erst global setzen. Der nun funktionierende code sieht so aus: foreach($felder as $f) { eval("global \$".$f."; \$str =\$".$f.";"); $inhalt .="Feld ".$f." ist aktiviert??: ".$str." "; } |
Re: [PHP]: Variabel mit Variabelinhalt
|
Re: [PHP]: Variabel mit Variabelinhalt
wieso $inhalt .= .......
doch nur ein einfaches = |
Re: [PHP]: Variabel mit Variabelinhalt
Zitat:
Naja, ich habe das so verstanden: Ich habe eine Variable, der ich einen String zuweise: $variable = "tuut"; und wenn ich dieser Variable nochmal einen Wert zuweise, aber dabei ein doppeltes $$ verwende: $$variable ="abababab"; Dann hat die Variable plötzlich den Name tuut. Also: print($tuut); führt zu: abababab Aber mal angenommern ich habe das richtig verstanden. Wie soll man das denn einsetzen? Ich kann der Variable zwar dynamisch einen Namen verpassen, aber tzrotzdem nichtmehr drauf zugreifen, weil ich den Variablenname auch wieder mit eval ansprechen müsste *verwirrt* |
Re: [PHP]: Variabel mit Variabelinhalt
Zitat:
Mal manuell veanschaulicht: $Nickname ="meinNick"; $Vorname ="meinName"; $inhalt .=$Nickname." "; $inhalt .=$Vorname." "; führt dazu, dass in $inhalt dieses hier steht: meinNick meinname wenn ich die Punkte weglassen würde, dann würde dort nur noch meinName drinstehen. |
Re: [PHP]: Variabel mit Variabelinhalt
Hi yankee,
wenn du vor dem Code $felder als global setzt, dann sollte auch der folgende Code funktionieren: Zitat:
alcaeus |
Re: [PHP]: Variabel mit Variabelinhalt
Zitat:
Code:
folgendes schreiben :
eval("global \$".$f."; \$str =\$".$f.";");
Code:
global $$f;
$str = $$f |
Re: [PHP]: Variabel mit Variabelinhalt
Zum verständnis poste ich mal die ganze function:
function printlist() { global $felder; foreach($felder as $f) { eval("global \$".$f."; \$str =\$".$f.";"); $inhalt .="Feld ".$f." ist aktiviert??: ".$str." "; } send_page($inhalt, "", "css/std.css", true); } die function send_page macht eigentlich nichts anderes als die Variable $inhalt der print-function zu übergeben, alleridngs fügt es dabei noch ein paar Sachen wie ein div mit navigationsleiste hinzu... Naja, du kannst statt
Code:
folgendes schreiben :
eval("global \$".$f."; \$str =\$".$f.";");
Code:
[/quote]
global $$f;
$str = $$f Wenn ich das richtig sehe, kann ich also sowas schreiben (in der foreach-schleife): $str =$$f; $inhalt .="Feld ".$f." ist aktiviert??: ".$str." "; oder gleich: $inhalt .="Feld ".$f." ist aktiviert??: ".$$f." "; |
Re: [PHP]: Variabel mit Variabelinhalt
Was man auch machen kann, find ich persönlich angenehmer:
Code:
In deinem Fall also global ${$f}.
$var_1= 'Bla';
echo ${'var_1'}; // Klar die Ausgabe wäre dann `Bla´ mfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz