Avatar billede alphamale Nybegynder
16. november 2004 - 09:05 Der er 9 kommentarer og
1 løsning

form med ukendt antal variabler

Hvis man på side a.php har et ukendt antal tekstfelter i en form (tX1 - tXx) og man submitter disse til b.php, hvordan kan b.php så regner ud hvor mange felter det drejer sig om? Altså hvor mange variabler der er ført over?
Avatar billede jaw Nybegynder
16. november 2004 - 09:12 #1
Hvis du nu kunne lave det som et array, eks:

<form type='text' name='felt[]'>

Så vil du i hvert fald kunne bruge: count(felt); til at returnere antallet af felter...
Avatar billede jaw Nybegynder
16. november 2004 - 09:13 #2
Måske du også kan bruge: count($_POST); til at få antallet af form's der er overført fra forrige side... Den kan da afprøves :)
Avatar billede alphamale Nybegynder
16. november 2004 - 09:32 #3
Det er intet problem at danne felterne. De hedder alle sammen tx1, tx2, tx3, osv og bliver lavet automatisk. Jeg kan sågar også overfører en seperat variable der fortæller mig hvor mange TX-variabler der er overført.

Jeg kan bare ikke rigtig lave en løkke som kan finde disse:

for($i=0;$i<$count_var;$i++) {
et_array[$i] = "tx".$i;
}

Altså; hvordan man omdanner fange variablen fra $tx1 og ikke kun selve bogstaverne "tx1".

Gav den nogen mening?


Normalt ville jeg vide at der er overført tx1, tx2, navn, gruppe. Disse kunne jeg så bearbejde uden problemer.
Avatar billede hmortensen Nybegynder
16. november 2004 - 09:37 #4
Hvis du gerne vil ha det i et array på næste side, kan du lige så godt navngiv felterne som jaw skrev:

name="txt[]"

så har du variablerne her:
foreach ($_POST['txt'] AS $val) {
echo $val."<br />\n";
}
Avatar billede alphamale Nybegynder
16. november 2004 - 09:37 #5
F.eks:

Hvis man på b.php skriver

<?

$temp = "tx1";
echo $temp; // tx1


?>

Hvorimod:

<?

echo $tx1; // hvad_nu_variablen_indeholder

?>
Avatar billede jaw Nybegynder
16. november 2004 - 09:39 #6
Er det sådan her du mener? Har lavet et lille eksempel som du lige kan afprøve...

<?

$tx1 = "hest";
$tx2 = "argh";
$tx3 = "bum";

$et_array = array();
for($i = 1; $i < 4; $i++) {
    $et_array[] = ${"tx".$i};
}

echo $et_array[0];
   
?>
Avatar billede alphamale Nybegynder
16. november 2004 - 09:56 #7
Bingo jaw - smid et svar :)
Avatar billede jaw Nybegynder
16. november 2004 - 09:58 #8
Det vil jeg da så gøre :)
Avatar billede alphamale Nybegynder
16. november 2004 - 10:18 #9
Gracias :)
Avatar billede sukos Juniormester
16. november 2004 - 10:22 #10
Du kan også
<?php

while(list($key, $value) = each($_POST)) {
echo $key ." = ". $value;
}

?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester