/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Vilkårligt antal variabler
Fra : Henrik Stidsen


Dato : 09-07-03 01:00

Jeg skal have overført, modtaget og behandlet et ukendt antal data
fra en side. Problemet er ikke at opstille en formular der
inderholder dataen.

Problemet er, hvad skal felterne navngives og hvordan modtages disse
i et script og behandles ? Er der en smart måde eller skal felterne
bare navngives felt1, felt2, felt3, felt4, feltn og så køres gennem
en while løkke:

while($felt$counter){
   // Gør dog noget!
}

- eller er der en skidesmart måde så alle værdierne med et snuptag
kan smides i et array ? (gerne et 2 dimensionelt!).

Input modtages med glæde.

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Is everyone else in the world a moron, or is it just me?"
(Dilbert Newsletter)

 
 
Jimmy (09-07-2003)
Kommentar
Fra : Jimmy


Dato : 09-07-03 07:31


"Henrik Stidsen" <idontwantnospam@hs235.dk> wrote in message
news:Xns93B3145A1FEABHS235DK@130.225.247.90...
> Jeg skal have overført, modtaget og behandlet et ukendt antal data
> fra en side. Problemet er ikke at opstille en formular der
> inderholder dataen.

Det er lidt uklart for mig.
Er det din egen side? En anden side?


> Problemet er, hvad skal felterne navngives og hvordan modtages disse
> i et script og behandles ? Er der en smart måde eller skal felterne
> bare navngives felt1, felt2, felt3, felt4, feltn og så køres gennem
> en while løkke:

Kender du rækkefølgen af de data der kommer?

F.eks. gør jeg ofte det i forms, at jeg genererer formen ved at løbe
databasen igennem med en ORDER BY på.
Når jeg så validerer data løber jeg databasen igennem igen med den samme
ORDER BY, og når jeg arkiverer brugerens input det samme.

Mvh
Jimmy





Henrik Stidsen (09-07-2003)
Kommentar
Fra : Henrik Stidsen


Dato : 09-07-03 13:25

"Jimmy" <nyhedsgruppe@get2net.dk> wrote in
news:KEOOa.3588$wz3.713@news.get2net.dk

>> Jeg skal have overført, modtaget og behandlet et ukendt antal
>> data fra en side. Problemet er ikke at opstille en formular der
>> inderholder dataen.
>
> Det er lidt uklart for mig.
> Er det din egen side? En anden side?

Ja, fra en side til en anden på samme server.

>> Problemet er, hvad skal felterne navngives og hvordan modtages
>> disse i et script og behandles ? Er der en smart måde eller
>> skal felterne bare navngives felt1, felt2, felt3, felt4, feltn
>> og så køres gennem en while løkke:
>
> Kender du rækkefølgen af de data der kommer?

Ja og nej...
Det der skal ske er at en masse data fra en database skal skrives ud
i en form så de kan rettes og/eller tilføjes ekstra felter.

> F.eks. gør jeg ofte det i forms, at jeg genererer formen ved at
> løbe databasen igennem med en ORDER BY på.
> Når jeg så validerer data løber jeg databasen igennem igen med
> den samme ORDER BY, og når jeg arkiverer brugerens input det
> samme.

Hvilket ikke kan bruges idet der ændres på dataen og tilføjes flere
rows. Jeg tror bare jeg bruger den som Flemming foreslår.

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Is everyone else in the world a moron, or is it just me?"
(Dilbert Newsletter)

Flemming Joensson (09-07-2003)
Kommentar
Fra : Flemming Joensson


Dato : 09-07-03 08:46

Henrik Stidsen <idontwantnospam@hs235.dk> wrote in
news:Xns93B3145A1FEABHS235DK@130.225.247.90:

> Problemet er, hvad skal felterne navngives og hvordan modtages disse
> i et script og behandles ? Er der en smart måde eller skal felterne
> bare navngives felt1, felt2, felt3, felt4, feltn og så køres gennem
> en while løkke:
>
> while($felt$counter){
> // Gør dog noget!
> }
>
> - eller er der en skidesmart måde så alle værdierne med et snuptag
> kan smides i et array ? (gerne et 2 dimensionelt!).
>


Den nemmeste måde er vel at på din HTML formular der navngives alle felter
med name="formdata[]". De firkantede paranteser gør at de så smides i et
array der kan hentes ud på din PHP side.

Alt efter om du poster eller getter, kan du så udskrive værdierne således
(ikke testet)

$associativtArray = array();

foreach($_GET['formdata'] as $key => $value) {
   echo "Felt nummer: ".$key." indeholder: ".$value."<br />";
   $associativtArray[] = array($key, $value);
}

Jeg har ikke tjekket ovenstående, men mener det sådan ca. burde være noget
i den stil.
Eventuelt bare $_GET['formdata'] as $value i foreach - og så indsætte en
variabel du tæller op (eller erstatter med et sigende navn), ind som $key i
dit associative array.

Håber det måske kan få dig lidt videre.

Flemming

Flemming Joensson (09-07-2003)
Kommentar
Fra : Flemming Joensson


Dato : 09-07-03 08:55

Flemming Joensson <joensson@fjerndette.cs.auc.dk> wrote in
news:Xns93B363B938306joenssonfjerndettecs@130.225.247.90:

> $associativtArray[] = array($key, $value);
>
> Jeg har ikke tjekket ovenstående, men mener det sådan ca. burde være
> noget i den stil.
>

Jeg kunne selvfølgelig ikke dy mig, og tjekkede lige. En lille fejl havde
indsneget sig.

For at det virker pænt, skal du skrive
$associativtArray[$key] = $value;

i stedet for denne linje
$associativtArray[] = array($key, $value);

Ellers får du et array med et nyt array på hver plads.

Derudover ser det ud til at virke fint :)

Flemming

Flemming Joensson (09-07-2003)
Kommentar
Fra : Flemming Joensson


Dato : 09-07-03 09:05

Flemming Joensson <joensson@fjerndette.cs.auc.dk> wrote in
news:Xns93B3654CB5A33joenssonfjerndettecs@130.225.247.90:

> Derudover ser det ud til at virke fint :)

Det virker selvfølgelig kun med simple forms hvor det kan lade sig gøre at
give alle felter samme navn.

Alternativt kan du bare lave foreach om til dette:

foreach($_POST as $key => $value) {

og så beholde resten jeg skrev, så lægges alle variable fra din form i det
associative array, også selvom deres name er forskellige.

Flemming

Jacob Bunk Nielsen (09-07-2003)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 09-07-03 10:54

Henrik Stidsen <idontwantnospam@hs235.dk> writes:

> Problemet er, hvad skal felterne navngives og hvordan modtages disse
> i et script og behandles ? Er der en smart måde eller skal felterne
> bare navngives felt1, felt2, felt3, felt4, feltn og så køres gennem
> en while løkke:
>
> while($felt$counter){
>    // Gør dog noget!
> }

Hvis du vælger den løsning, så bør du nok lave noget i stil med:

$i = 1;
while (isset($_POST["felt" . $i++])) {
// noget ...
}

--
Jacob - www.bunk.cc
You ain't learning nothing when you're talking.

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste