php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Formular mit vielen Variablen


 
Le_Cheffe
31-07-2003, 04:01 
 
Hallo,

stehe vor einem (für mich) mittelgroßen Problem mit nem Formular und den Variablen. Habe ein Formular mit vielen Variablen, welches komplett in einer Funktion ist. Da "register globals off" ist, muss ich, wenn ich nun die Daten abschicke, ja über $_GET["varname"] auf die einzelnen Variablen zugreifen. Da ich die Variablen per Parameter an die Funktion übergebe, hätte ich nun eine ellenlange Parameterliste. Alternativ dazu ist mir noch die Möglichkeit eingefallen, direkt zu Beginn des Skriptes die Variablen alle in einem Array zu speichern (z.B. $daten["varname"] = $_GET["varname"]). Das wiederum ist auch viel Arbeit. Nun die Frage. Gibt es nicht eine einfache Möglichkeit, die Variablen im Formular direkt in ein Array zu speichern (sowas wie <input type="text" name="daten["varname"]> oder ähnliches ... hoffe, mein Ansinnen kommt da raus) oder sonstwie vor dem Absenden in ein Array zu bekommen? Falls das möglich sein sollte, müsste ich noch wissen, wie mein ein Array über $_GET anspricht.

Danke schonmal

Le Cheffe

 
goth
31-07-2003, 04:45 
 
Nur mal so 'ne Idee ... $_GET ist ja eigentlich schon ein Array ... $_POST auch ... und $_REQUEST auch ... warum meinst Du die Variablen jetzt von einem Array in ein anderes übertragen zu müssen ... ??

 
wahsaga
31-07-2003, 12:31 
 
Original geschrieben von Le_Cheffe
Da ich die Variablen per Parameter an die Funktion übergebe, hätte ich nun eine ellenlange Parameterliste.
goth hat recht - da die genannten arrays superglobal sind, brauchst du sie doch gar nicht an die funktion übergeben - sie stehen auch so schon innerhalb der funktion zur verfügung.

 
Le_Cheffe
01-08-2003, 01:10 
 
Hi !

Da habe ich mich wohl ein wenig schlecht ausgedrückt. Das folgende steht in der Datei index.php ...



<?php

(*1)

function daten_sammeln($daten) (*2)
{
<form action="index.php">
Name
<input name="nachname" size="50" maxlength="100" value="' . $dvd_datensatz["nachname"] . '">

(hier noch viele input Felder hindenken)

<input name="gesendet" value="1">
<input type="Submit" value="Abschicken">
</form>

}

//---//

// hier prüfen, ob Daten vollständig
// wenn vollständig, dann Variable $komplett = 1 setzen

if (!isset($_GET["gesendet"]) or ($komplett != 1))
{
daten_sammeln(&$daten);
} else {
// Daten auswerten //
}

}

?>


So ähnlich sieht das bei mir aus. Nun ist mein Problem, dass ich eben viele Variablen habe, so dass mir bisher 2 relativ aufwendige Möglichkeiten eingefallen sind, wie ich es schaffe, alle Formulardaten in das Array zu bekommen bzw. alle einzelnen Variablen in die Funktion zu bekommen.
1. Bei Stelle (*1) alle Variablen einzeln mittels $daten["varname"] = $_GET["varname"] übergeben oder
2. an Stelle (*2) alle Variablen als Parameter der Funktion übergeben.

Bevor ihr jetzt glaubt, ich habe das mit den superglobals nicht verstanden, will ich das auch noch aufklären. Da es etliche Funktionen in meinem Programm geben wird, hätte ich eben gerne, dass die einzelnen Variablen als Parameter auftauchen, sonst gibt mir das zuviel Unordnung.

Gruß und Dank

Le Cheffe

 
CrazyPip
01-08-2003, 01:42 
 
öhmm...

wie wäre es wenn du die alle Variablen/Arrays als global in die Funktion setzt?! somit hast du doch was du möchtest: Alle Variablen $_Get usw. können in der Funktion genutzt werden.


function daten_sammeln($daten) (*2)
{
global $_GET,$var,$sonstige;

echo "<form action=\"index.php\">";
// weitere Ausgaben hier


Nun kannst du alle $_GET, $var[], $sonstige[] in der Funktion benützen wie du willst?!
(wobei ich glaube, dass du GET Variablen nicht global deklarieren musst, da sie in der URL stehen - bin mir aber dessen nicht sicher, sodass dus einfach mal testen müsstest)

cya CrazyPip


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:49 Uhr.