Zum Inhalt springen

PHP: Formularübergabe und danach Variablen zusammensetzen


Empfohlene Beiträge

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"

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

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