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

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408848
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste