Det er meningen at den kun skal køre: echo'<input type="checkbox" name="ejer[]" value="' . $row['id'] . '" checked>' . $row['id'] . ''; hvis der er en der matcher ellers skal den gø vidre og tjekke den næste
Hvis der ikke er en der matcher skal den køre: echo'<input type="checkbox" name="ejer[]" value="' . $row['id'] . '">' . $row['id'] . '';
Hvis vi siger at jeg har
$videoer array(1 2 4 5 6 9)
Så viser den, den har tjekket den uden match og den har tjekket den med match
det vi sige at den viser 6 checkbox'e hvor den kun skal vise 1
Det er mig ikke helt tydeligt hvad du vil. Ifoelge din kode har du en enkelt vaerdi af $row['id'], lad os sige 4. Fordi der er seks vaerdier i arrayen laver du seks checkboxe, alle med vaerdien 4! Fordi den tredje vaerdi i arrayen ogsaa er 4 bliver den tredje cehckbox checked og de andre ikke checked. Altsaa din kode skulle give saadan et resultat:
4 ikke checked 4 ikke checked 4 checked 4 ikke checked 4 ikke checked 4 ikke checked
Er det hvad du faar eller faar du noget andet?
Nu tror jeg egenligt at det slet ikke er det du vil have, men at du har en database tabel med videoer, skal vi sige med vaerdierne 1, 2, 3, 4, 5, 6, og 7. For hver af disse vil du have en checkbox, altsaa i dette tilfaelde 7 checkboxe med vaerdierne 1 til 7. Hvis videoen matcher en af vaerdierne i arrayen skal den tilsvarende checkbox vaere checked, ellers ikke. Saa du vil have dette (tror jeg):
1 checked 2 checked 3 ikke checked 4 checked 5 checked 6 checked 7 ikke checked
Hvis det er det du vil opnaa, saa maa du gribe det an paa en anden maade. For hver af videoerne i databasen laver du en checkbox. For hver af disse loeber du vaerdierne i arrayen igennem, og hvis en af dem matcher checker du checkboxen, ellers ikke. Noge i denne henretning:
$result = mysql_query("SELECT id FROM Mintabel"); while($row = mysql_fetch_array($result)) { $match = false; $id = $row['id']; foreach($videoer as $video) if ($id == $video) $match = true; echo "<input type='checkbox' name='ejer[]' value='$id "; if($match) echo " checked "; echo ">$id"; }
Jeg har ikke testet koden, men den skulle virke. Hvis det saadan du vil have det, men det gaar galt med koden, saa forklar. Saa kikker vi igen.
Hvis der i min array står: 1 2 4 5 6 9 Skal den vise på følgendene måde. 1 checked box 2 checked box 3 ikke checked box 4 checked box 5 checked box 6 checked box 7 ikke checked box 8 ikke checked box 9 checked box 10 ikke checked box
Som sagt, det resultat har ingen sammenhaeng med den kode du viser! Du synes at have ti videomodeller gemt i en eller anden tabel, og du oensker en checkbox for hver af disse videomodeller. Men i din kode bruger du kun id'en for en enkel af modellerne, og din kode laver en checkbox for hver vaerdi i arrayen, ikke for hver vaerdi i videotabellen.
Proev at vis resten af koden. Den maa indeholde et udtraek af vaerdier fra en databasetabel saasom "$result = mysql_query(SELECT ..et eller andet fra en eller anden tabel). For at komme videre saa lad os se den kode. Og vis ogsaa opbygningen af den tabel du traekker vaerdier ud af.
det ser ud til at din kodestump kommer fra en while der smider data fra en databasetabel over i et array.
i stedet for at bruge en foreach hver gang ti at finde ud af om den aktuelle række er i arrayet "$videoer", kan du bruge "in_array()"
Synes godt om
Ny brugerNybegynder
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.