Avatar billede mjl Nybegynder
10. juni 2009 - 19:49 Der er 19 kommentarer og
1 løsning

Sætte hak i checkbox

Hej der ...

Jeg har følgende :

$hent_oversigt = mysql_query("SELECT * FROM database WHERE HW_500 != '' AND arkiv != '1' ORDER BY dato");
while ($hent_oversigt_print = mysql_fetch_array($hent_oversigt)) {
$dateret = $hent_oversigt_print["dato"];
$dateret = date("d.m.Y",$dateret);
echo $dateret." = ".($hent_oversigt_print["HW_500"]/70)." pl&nbsp;<br>";
for ($i=1;$i<=($hent_oversigt_print["HW_500"]/70);$i++) {
echo "<input type=Checkbox>";
if (($i % 15) == 0) {
print '<br />';
}
}
echo "<br>";
}

Kan jeg på nogen måde, få hak i en del af de checkboxe, der vises på siden?

Jeg får 2 resultater mere fra DB'en - det ene er det antal checkboxe der skal vises, det andet resultat, er det antal, der skal være hak i ...

Håber du / I kan hjælpe !!

VH Conrad
Avatar billede repox Seniormester
10. juni 2009 - 19:55 #1
Ja, ved hjælp at checked attributen.

<input type="checkbox" checked="checked" name="test" value="test" />
Avatar billede mjl Nybegynder
10. juni 2009 - 20:04 #2
Ja, men det er kun nogen af dem der skal checkes ... der fremkommer f.eks. 30 boxe, men kun 21 skal være checked.
Avatar billede repox Seniormester
10. juni 2009 - 20:07 #3
for ($i=1;$i<=($hent_oversigt_print["HW_500"]/70);$i++)
{
    if($i == 21) //du kan jo selv indsætte din betingelse her
        $checked = " checked=\"checked\"";
    else
        $checked = "";

    echo "<input type=\"checkbox\"".$checked." />";
Avatar billede mjl Nybegynder
10. juni 2009 - 20:19 #4
Hmmm ... den sætter hak i den box, der har samme nummer ...

F.eks.    if($i == 4) // laver hak i fjerde checkbox, og kun den !
Avatar billede repox Seniormester
10. juni 2009 - 20:22 #5
ja? Du fortæller den jo med
if($i == 4)
at den skal gøre noget når $i er 4.
Avatar billede mjl Nybegynder
10. juni 2009 - 20:24 #6
Jamen det er 4 checkboxe af 7, der skal være checked ...
Avatar billede repox Seniormester
10. juni 2009 - 20:32 #7
Og hvordan differencier du på hvilke 4 af de 7 der skal checkes af?
Avatar billede hmortensen Nybegynder
10. juni 2009 - 21:43 #8
Lav den om til ($i <= X)
Avatar billede mjl Nybegynder
10. juni 2009 - 21:49 #9
Sådan - så spiller det !
Avatar billede mjl Nybegynder
10. juni 2009 - 21:56 #10
Problemet er bare, at jeg jo har flere resultater ...

Res 1. [][][][]
Res 2. [][][]

Og der skal hak i f.eks. 5 af de ialt 7 - men da det er to forskellige res. fra DB'en, for begge 5 hak ... altså:

Res 1. [x][x][x][x]
Res 2. [x][x][x]

i stedet for

Res 1. [x][x][x][x]
Res 2. [x][][]

Øv ... måske kan det ikke lade sig gøre !
Avatar billede repox Seniormester
10. juni 2009 - 22:11 #11
Jeg kan da godt spørge igen, hvis det hælper:
Hvordan differencierer du på hvilke 4 af de 7 der skal checkes af?
Avatar billede mjl Nybegynder
10. juni 2009 - 22:16 #12
Jeg udtrækker nogle rækker fra MySQL

Resultatet kan være 2 rækker - den ene er lig med 4 - derfor 4 checkboxe - og det andet udtræk, er lig med 3, derfor 3 boxe. Lager beholdningen er 5, så jeg mangler 2 stk på lager, for at opfylde begge ordre (4 + 3 = 7)

Jeg har altså tallene 4,3 og 5 ...

Håber du forstår !?

Conrad
Avatar billede mjl Nybegynder
10. juni 2009 - 22:19 #13
... altså, skal de bare hakkes af i rækkefølge. Det vil sige, at jeg kan hakke de 4 første af, men kun 1 af de næste 3, da jeg kun har 5 af de 7 der kræves, for at hakke alle af !
Avatar billede repox Seniormester
10. juni 2009 - 22:36 #14
Nu kan jeg jo kun se at du henter et resultat fra ovenstående. Men idéen ville nok være noget med at at du tæller sammen hvor mange du skal have krydset af.


$x = 0;
for ($i=1;$i<=($hent_oversigt_print["HW_500"]/70);$i++)
{
    if($x <= $samlet_antal_checked)
        $checked = " checked=\"checked\"";
    else
        $checked = "";

    $x++;

    echo "<input type=\"checkbox\"".$checked." />";
Avatar billede mjl Nybegynder
10. juni 2009 - 22:49 #15
Nu krydser den alle boxene af ...
Avatar billede repox Seniormester
10. juni 2009 - 22:55 #16
Det er jo rent gætteri - jeg kan ikke se eller bugfixe din kode.

Prøv det her så:

for ($i=1;$i<=($hent_oversigt_print["HW_500"]/70);$i++)
{
    if($i <= $samlet_antal_checked)
        $checked = " checked=\"checked\"";
    else
        $checked = "";


    echo "<input type=\"checkbox\"".$checked." />";

Den virker selvfølgelig kun hvis $samlet_antal_checked er regnet rigtigt ud.
Avatar billede mjl Nybegynder
10. juni 2009 - 22:59 #17
Det er helt ok - jeg må gå videre med det du har givet mig. 1000 tak for hjælpen - læg venligst et svar, så får du dine velfortjente points !!

Tak igen ...
Avatar billede repox Seniormester
10. juni 2009 - 23:01 #18
Så længe jeg ikke ikke løste dit problem, så har jeg ikke fortjent pointene. Tag du dem selv og brug dem en anden gang.
Avatar billede mjl Nybegynder
10. juni 2009 - 23:04 #19
Jamen, du har guidet mig i den rigtige retning - det er da points værd !!!
Avatar billede repox Seniormester
10. juni 2009 - 23:06 #20
Det er dine point, så du bestemmer selvfølgelig. Held og lykke med det.
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