Avatar billede Lucky_Mik Nybegynder
17. juli 2009 - 20:52 Der er 6 kommentarer og
1 løsning

checkboxe - vise brugervalg - få skrevet "checked" på den rigtige måde

Jeg har en tabel med bynavne.
og en tabel med brugere
og en tabel, der hedder valg af bynavne.

Jeg vil gerne give brugerne mulighed for at rette deres valg af bynavne, ved at vise en liste med alle bynavne og de bynavne brugeren har valgt skal være krydset af, hvordan laver jeg det - det er noget med at få skrevet "checked" på den rigtige måde ?

Jeg har checkboxene her:

    $query="SELECT by FROM byer";
    $result=mysql_query($query) or die;
    while ($row=mysql_fetch_assoc($result))
    {   
        extract ($row);
            echo "<input type=checkbox name= byer value = '$by'>"$by";
            echo "<br>";
    }

Jeg har også en query, hvor jeg henter de bynavne brugeren har valgt. Dem får jeg en række ad gangen, men hvad skal jeg gøre med dem ?
Avatar billede Slettet bruger
17. juli 2009 - 21:46 #1
Prøv med:

<?php
    $query="SELECT by FROM byer";
    $result=mysql_query($query) or die;
    while ($row=mysql_fetch_assoc($result))
    { 
        extract ($row);
            echo "<input type=checkbox name='byer' value='$by'";
            if ($checked) echo " checked='checked'";
            echo">$by<br>";
    }
?>

Dette kræver så, at du i MySQL-databasen har en værdi kaldet "checked", som kun er sat ved de valgte byer.
Avatar billede Lucky_Mik Nybegynder
18. juli 2009 - 11:38 #2
Det har jeg ikke, jeg har en tabel, valg_byer, der bl.a har felterne bruger_id, by_id samt bynavn.
Avatar billede Slettet bruger
18. juli 2009 - 15:29 #3
Absolut ikke en effektiv måde at gøre det på, men det burde virke:

<?php
$query="SELECT bynavn FROM valg_byer where bruger_id = '$brugerid'";
$result=mysql_query($query) or die;
while ($row=mysql_fetch_assoc($result))
{
    extract ($row);
    $byer_valgt[] = $bynavn;
}

$query="SELECT by FROM byer";
$result=mysql_query($query) or die;
while ($row=mysql_fetch_assoc($result)) {
    extract ($row);
    echo "<input type=checkbox name='byer' value='$by'";
    for ($i = 0; $i < count($byer_valgt); $i++) {
        if ($byer_valgt[$i] == $by) {
            echo " checked='checked'";
            break;
        }
    }
    echo">$by<br>";
}
?>
Avatar billede Lucky_Mik Nybegynder
19. juli 2009 - 16:14 #4
Tak for dit input, skriv et svar, så giver jeg point. Jeg fandt  dog frem til en løsning hvor jeg lægger brugerens valgte byer i et array. Derefter henter jeg alle bynavne, og ved hjælp af if in_array fik jeg sat variablen $checked rigtigt - så det endte godt :-)
Tak for hjælpen.
Avatar billede Lucky_Mik Nybegynder
19. juli 2009 - 16:15 #5
hov, mit sidste indlæg skulle have været en kommentar.
Avatar billede Slettet bruger
20. juli 2009 - 12:58 #6
Jeg er glad for at det lykkedes for dig :-)
Her er et svar.
Avatar billede Slettet bruger
20. juli 2009 - 12:58 #7
Her er et svar.
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