|
| indholdet på en variabel skal være navnet ~ Fra : sune vuorela |
Dato : 08-02-04 02:56 |
|
Hjesa!
Jeg har i en hfil lavet en række checkbokse a la:
<input type=\"checkbox\" name=\"$navn\" value=\"1\" checked>
hvor navn ændres automatisk.
Så langt så godt.
når jeg så skal bruge det til noget bagefter, hvordan får jeg det så
gjort?
Jeg skal gemme en linje i en database for hver af dem der er krydset
af.
Hvis jeg havde haft et statisk navn på checkboksen, f.eks. boks, havde
jeg bare gjort:
if(isset($_POST['boks'])){ //det der nu skal gøres
}
men hvordan gør jeg når navnet ikke er fast?
Der er ikke et konstant antal af checkbokse.
Der er også andet i formularen.
--
Sune
| |
Leonard (08-02-2004)
| Kommentar Fra : Leonard |
Dato : 08-02-04 03:01 |
|
sune vuorela <nospam@vuorela.dk> wrote:
>men hvordan gør jeg når navnet ikke er fast?
Du kan jo løbe $_POST arrayet igennem:
while (list ($navn,$value) = each ($_POST))
og så tjekke på om det er noget du skal gøre noget ved
--
mvh Leonard http://leonard.dk/
Det er en muldvarp på motorcykel!
Hvad er det, der er småt, sort og meget hurtigt?
http://usenet.dk/netikette/citatteknik.html
| |
sune vuorela (08-02-2004)
| Kommentar Fra : sune vuorela |
Dato : 08-02-04 03:46 |
|
En der kalder sig Leonard <dennemailerikketilspam@tdc-broadband.dk>
skrev:
>Du kan jo løbe $_POST arrayet igennem:
>while (list ($navn,$value) = each ($_POST))
>og så tjekke på om det er noget du skal gøre noget ved
hmmm det er et skridt i den rigtige retning, men desværre ikke helt.
Jeg har nu to while-løkker, der begge virker hver for sig:
while($row=mysql_fetch_array($resultat)){
$navn = $row ['user'];
while(list ($name,$value) = each ($_POST)){
echo $name." + ".$navn."<br>"; //tester om det ser
rigtigt ud [1]
if($name==$name) echo "virker: $navn<br>"; //tester om
det virker [2]
}
}
[1] burde skrive samtlige mulige kombinationer af det fra min
sql-sætning og det fra $_POST. Der er 3 lige nu tre linjer i databasen
og 7 i min formular (så længe jeg tester). Det burde give 21 linjer,
men jeg får kun 7. Det er de 7 der fås fra $_POST kombineret med
første sql-række.
[2] skriver dem som jeg er interesseret i. Der er kun 1 her - og ikke
de 3 som der lige nu burde.
Så problemet er at den ikke gennemløber den første while-løkke, når
den anden while-løkke også er til stede.
Hvis jeg sætter $name til en kendt værdi fra user i min database, så
får jeg gennemløbet sql-arrayet som jeg ønsker.
Hvad går galt?
--
Sune
| |
sune vuorela (08-02-2004)
| Kommentar Fra : sune vuorela |
Dato : 08-02-04 11:42 |
|
En der kalder sig sune vuorela <nospam@vuorela.dk> skrev:
>hmmm det er et skridt i den rigtige retning, men desværre ikke helt.
>Jeg har nu to while-løkker, der begge virker hver for sig:
>
>while($row=mysql_fetch_array($resultat)){
> $navn = $row ['user'];
> [*]
> while(list ($name,$value) = each ($_POST)){
>Hvad går galt?
hmmm nu ved jeg hvad der er galt. men jeg ved ikke hvordan jeg løser
det.
Jeg skal have each()til at starte forfra ved [*]. Kan man det - eller
skal jeg klare det ved at lave et nyt array ud fra $_POST, som jeg så
gennemløber med en for-løkke?
--
Sune
| |
Peter Brodersen (08-02-2004)
| Kommentar Fra : Peter Brodersen |
Dato : 08-02-04 12:44 |
|
On Sun, 08 Feb 2004 11:41:38 +0100, sune vuorela <nospam@vuorela.dk>
wrote:
>Jeg skal have each()til at starte forfra ved [*].
Du kan bruge reset() til at sætte pointeren tilbage til starten i et
array.
Du kan også overveje at bruge foreach(), der arbejder på en kopi af
arrayet.
--
- Peter Brodersen
Ugens sprogtip: I gang (og ikke igang)
| |
Tonni Aagesen (08-02-2004)
| Kommentar Fra : Tonni Aagesen |
Dato : 08-02-04 09:55 |
|
sune vuorela wrote:
> Hjesa!
>
> Jeg har i en hfil lavet en række checkbokse a la:
>
> <input type=\"checkbox\" name=\"$navn\" value=\"1\" checked>
Hvad med at sætte name til at være et array. Her er et lille eksempel:
if ($_POST["submit"]) {
echo "<b>Følgende personer blev valgt:</b><br /><br />";
while (list($key, $value) = each ($_POST['arr'])) {
echo "$value (array index: $key)<br />\n";
}
}
?>
<p><b>Vælg personer</b></p>
<form action="index2.php" method="post">
<input type="checkbox" name="arr[]" value="Peter" /> Peter<br />
<input type="checkbox" name="arr[]" value="Hans" /> Hans<br />
<input type="checkbox" name="arr[]" value="Niels" /> Niels<br />
<input type="checkbox" name="arr[]" value="Jørgen" /> Jørgen<br />
<input type="checkbox" name="arr[]" value="Klaus" /> Klaus<br />
<input type="submit" name="submit" value="send" />
</form>
Mvh
Tonni
| |
|
|