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