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 <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
Annonceindlæg fra FPT Software
Ja, ved hjælp at checked attributen. <input type="checkbox" checked="checked" name="test" value="test" />
Ja, men det er kun nogen af dem der skal checkes ... der fremkommer f.eks. 30 boxe, men kun 21 skal være checked.
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." />";
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 !
ja? Du fortæller den jo med if($i == 4) at den skal gøre noget når $i er 4.
Jamen det er 4 checkboxe af 7, der skal være checked ...
Og hvordan differencier du på hvilke 4 af de 7 der skal checkes af?
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 !
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?
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
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 !
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." />";
10. juni 2009 - 22:49
#15
Nu krydser den alle boxene af ...
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.
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 ...
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.
10. juni 2009 - 23:04
#19
Jamen, du har guidet mig i den rigtige retning - det er da points værd !!!
10. juni 2009 - 23:06
#20
Det er dine point, så du bestemmer selvfølgelig. Held og lykke med det.
Vi tilbyder markedets bedste kurser inden for webudvikling