Zum Inhalt springen

Abfragen von Variablen Variablen mit PHP


Empfohlene Beiträge

Hallo!

Habe ein Problem mit 'ner CMS-Eigenkreation, bz. dynamischen Variablen.

Dioe Zeile des Quelltextes, um die es geht:

echo"<tr><td>".$ADescr."</td><td><input name=\"".$ADescr."\" value=\"".$test."\">";

Es geht um folgendes, das Formular erzeugt dynamisch ein anderes Formular. Letzteres wird in einer Datenbank gespeichert, von dem

CMS ausgelesen und als "normales" Formular ausgegeben.

Die Namen der Felder stehen in der Variablen "$ADescr", diese (die Felder) sind

auch zugleich die Variablen in denen der Endwert gespeichert wird.

Beispiel:

Formularfeld: Name, dann würde das Inputfeld "Name" heißen und das Ergebnis der Eingabe auch in Name gespeichert werden. Die Variable "Name" würde als Feld aus der DB ausgelesen und in "$ADescr" gespeichert.

Wenn ich nun Fehlerhafte Eingaben habe, wird das Formular wieder aufgerufen, der Fehler angezeigt und die einzelnen Felder sollen mit den alten Angaben vorbesetzt sein.

Wenn ich den Value setzen will, was für eine Besetzung des Inputfields nötig ist, benötige ich die Variable (also Name), die übergeben wird.

Nun ist das Problem das folgende:

Die Variable, in der der Eintrag gespeichert wird hat einen Variablen Namen. Z.B. könnte das Name sein, in $ADescr steht als als Variablenname

"Name". Sobald aber wieder auf das Formular zugegriffen wird benötige ich direkt den Variablennamen (den ich aber nicht kenne), ich kann den

Value also nicht mit "$ADescr" vorbesetzen, sondern benötige den Wert von "Name" der in diesem Beispiel in "$ADescr" drin stehen würde.

Wie komme ich an den dran?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Variablen habe ich nicht als global deklariert....

Hier die beiden Funktionen:

function Form_aus_DB() {

include 'inc/globvar.inc';

include 'inc/dbconnect.inc';

echo"<form action=\"".$PHP_SELF."\" method=\"post\">\n

<input type=\"hidden\" name=\"op\" value=\"FehlerCheck\">\n

<table border=\"0\">\n";

$sql = "SELECT Formular FROM ".$GV_DBTABLE_FORMS;

$result = mysql_query($sql,$db);

while($data = mysql_fetch_array($result)) {

$namePLUSinhalt = explode("|", $data["Formular"]);

foreach($namePLUSinhalt as $value) {

$OBJECT = explode(";", $value);

$ADescr = $OBJECT[0];

$Acb = $OBJECT[1];

if (!empty($ADescr)){

$test=$ADescr;

echo"<tr><td>".$ADescr."</td><td><input name=\"".$ADescr."\" value=\"".$test."\">";

if ($Acb>0) echo"<input type=\"hidden\" name=\"Pflicht".$Acb."\" value=\"1\"><font color=\"red\">*</font>";

echo"</td></tr>";

};

};

echo"</table><font color=\"red\">*</font> = Pflichtfeld<br><br>

<input type=\"submit\" name=\"abschicken\" value=\"Abschicken\">

</form>";

};

};

// endgültiges Formular wird auf Fehler überprüft und verschickt //

function FehlerCheck(){

include 'inc/globvar.inc';

include 'inc/dbconnect.inc';

$sql = "SELECT Formular FROM ".$GV_DBTABLE_FORMS;

$result = mysql_query($sql,$db);

while($data = mysql_fetch_array($result)) {

$namePLUSinhalt = explode("|", $data["Formular"]);

foreach($namePLUSinhalt as $value) {

$OBJECT = explode(";", $value);

$ADescr = $OBJECT[0];

$Acb = $OBJECT[1];

// Pflichtfelder werden der Reiche nach auf Existenz abgefragt

if($_POST["Pflicht$Acb"]=="1"){

if(empty($_POST[$ADescr])){

$error ="Fehler: Bitte geben Sie das Pflichtfeld \"".$ADescr."\" an.<br>";

};

};

};

};

// Wenn Fehler auftreten werden alle Fehlermeldungen ausgegeben!

if($error){

echo $error;

echo"<br>";

Form_aus_DB();

};

// dieses wird ausgefuehrt, wenn keine Fehler in Form von Pflichtfeldern aufgetreten sind.

else{

echo "klappt!";

};

};

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...