Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Abfragen von Variablen Variablen mit PHP

Empfohlene Antworten

Veröffentlicht

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?

Also:

$value=$$ADescr;

if (!empty($ADescr)){

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

Klappt net....

Hi!

Ja, das eigentliche Formular ruft eine Funktion "FehlerCheck" auf in der die Inhalte dann abgefragt werden.

code posten?

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

};

};

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.