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.

PHP: Formularübergabe und danach Variablen zusammensetzen

Empfohlene Antworten

Veröffentlicht

Hallo NG!

Hoffe hier kann mir jemand helfen.

Ich erstelle auf der 1. seite mittels einer Schleife (PHP/MySQL) mehrere Tabellenzeilen welche Formularbuttons beinhalten.

Der Name der Buttons erzeugt sich aus dem Zusammensetzen des Eintrag in der mySQL-Datenbank und eines festen Begriffes.

Bsp.: $pclname = "ABAP";

$line = "<input type=\"Checkbox\" name=\"PCL_\"";

$line .= $pclname;

$line .= "_Erfahrung\" value=\"1\">

-> folgende Checkbox wird erstellt:

<input type="Checkbox" name="PCL_ABAP_Erfahrung" value="1">

Das ganze wird dann über einen Button an die nächste Seite geschickt.

Dort will ich nun mittels einer ähnlichen Schleife die Variablen abfragen.

Frage:

Wie setz ich die Variable aus der MySQL-DB hier wieder so zusammen das ich auf die Werte aus der 1. seite zugreifen kann?

Also:

"PCL_" + pclname aus der Datenbank + "_Erfahrung"

bin mir nich sicher ob ich alles richtig verstanden habe. aber so wie ich das versteh hast du einen string:

"PCL_XXXXXXX_Erfahrung"

und willst davon das XXXXXXX bekommen?

also ich würde an deiner stelle entweder ein wenig mit strpos und substr rumbasteln (erst mit hilfe von strpos feststellen wo das PCL_ endet und das _Erfahrung anfängt und dann mit substr den teil dazwischen rausholen) oder das mit nem kleinen regulären ausdruck machen.

der könnte dann z.b. so aussehen:

preg_match("/_(.*)_/", $line, $matches);

oder auch so:

preg_match("/PCL_(.*)_Erfahrung/", $line, $matches);

($line is die zeile "PCL_XXXXX_Erfahrung")

in beiden fällen hast du hinterher in der variable $matches[1] den gesuchten wert.

du könntest aber auch deine datenbank anders designen indem du das in einzelne felder abspeicherst und hinterher zusammenbaust.

ich hoffe ich hab dich richtig verstanden und kontne ein wenig helfen

*g*

Hab auch schon in nem anderen Forum gemerkt das das Problem schwer zu beschreiben ist.

Variable ersetzen kann ich.

Ich will den Variablennamen zusammensetzen:

Also den Teil "PCL_" und den Teil "_Erfahrung" hab ich.

Ich will die Zusammensetzen.

Also vorher steht da

1. Teil: "PCL_"

2. Teil: "XXX"

3. Teil: "_Erfahrung"

Und am Ende soll da als Variable "PCL_XXX_Erfahrung"

Bloß kann ich die Variable net auslesen.

Original geschrieben von lifeguard

<input type="Checkbox" name="PCL_ABAP_Erfahrung" value="1">

Hi,

ich wüßte nicht ein Szenario, wo man solche zusammengesetzten Variablennamen braucht.

Es ist zwar theoretisch möglich, aber meistens ein Designfehler.

Warum nennst du die Checkboxen nicht einfach PCL_Erfahrung und definierst dieses als Array und setzt als Value den Wert aus der Datenbank?

Also so:

<input type="Checkbox" name="PCL_Erfahrung[]" value="ABAP">

Gruß Jaraz

ok, neuer versuch. du willst das eine variable heraus kommt die $PCL_XXX_Erfahrung heißt?

ich werd ez ne kurze antwort schreibn, net das meine antwort wieder net stimmt. also so kannst du des auf jedenfall nich machn, aber dafür kann man wunderbar arrays nehmen. machst du einfach $variable['PCL_'.$xxx.'_Erfahrung'] = 23

wenn $xxx = 'blub' steht in $variable['PCL_blub_Erfahrung'] die zahl 23

Eventuell könntest du auch eval() verwenden.

Wenn du da eval("$PCL_".XXX."_Erfahrung") verwendest, ist das das gleiche wie $PCL_XXX_Erfahrung. Müsste gehen, denk ich.

eval interpretiert den in der Klammer angegebenen String als PHP-Code.

Ist aber doch irgendwie arg umständlich und ich würd eine Lösung wie $PCL_Erfahrung['Abap'] ebenfalls vorziehen.

PHP bietet Unterstützung zur Erstellung variabler Variablen.


$var_name="PCL_$xyz_Erfahrung";

echo $$var_name;

# oder einfacher
echo $_POST["PCL_$xyz_Erfahrung"];
# bzw.
echo $_GET["PCL_$xyz_Erfahrung"];
[/PHP]

Ich hoffe mal ich konnte weiterhelfen.

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.