Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

Also:

$value=$$ADescr;

if (!empty($ADescr)){

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

Klappt net....

Geschrieben

Was kommt denn bei dir raus?

Stehen denn die Variablen zur Verfügung? Rufst du den Teil in einer Funktion auf? Dann stehen eventuell die Variablen nicht zur Verfügung.

Geschrieben

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!";

};

};

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...