Avatar billede Tomika Nybegynder
23. november 2015 - 09:11 Der er 16 kommentarer

Checkbox checked med variabel

Hej
Jeg har en bootstrap modal med en masse checkbokse i, som bruges til at vælge personer til og fra en opgave. Det virker fint i forhold til at opdatere min sql database.
Men jeg kunne godt tænke mig at 'fluebenet' i valgte checkbokse bliver stående når man på et senere tidspunkt åbner modal'en igen for at tilføje/slette personer.
Jeg har øverst i min kode denne linie for at checke om pågældende navn står i mit array over valgte personer.
    if(in_array(navn1,$delinger)){$checked = "checked";} else {$checked = "";}
    echo $checked;
Det virker helt fint. Længere nede i koden har jeg min modal hvor jeg så prøver at checke værdien af $checked. Det gør jeg på denne måde:
<div class="checkbox">
<label><input type="checkbox" <?php if($checked== 'checked'){echo 'checked'; }?> name="formdeling[]" id="formdeling" value="navn1">navn xxxxxxxx</label>
                </div>

Men jeg kan ikke få det til at virke. Har søgt mange fora igennem, men uden held.
Hvad gør jeg forkert?

Mvh Thomas
Avatar billede claes57 Ekspert
23. november 2015 - 09:36 #1
<input type="checkbox" <?php if($checked== 'checked'){echo 'checked'; }?>

da $checked er "" eller "checked" så kan du da skrive den under alle omstædningheder - drop if.
Avatar billede Tomika Nybegynder
23. november 2015 - 09:41 #2
Hvis jeg dropper if loader siden slet ikke. Der kommer bare en 'Internal server error'.
Avatar billede claes57 Ekspert
23. november 2015 - 09:57 #3
du skal echo $checked
Avatar billede Tomika Nybegynder
23. november 2015 - 11:10 #4
rettet til følgende:

<div class="checkbox">
<label><input type="checkbox" <?php echo $checked ?> name="formdeling[]" id="formdeling" value="navn1">navn xxxxxxxx</label>
                </div>

Ingen server fejl nu, men fluebenet er der stadig ikke når jeg åbner for modal'en igen.
Avatar billede claes57 Ekspert
23. november 2015 - 11:34 #5
den kan jeg ikke gennemskue, sorry...
Avatar billede Tomika Nybegynder
23. november 2015 - 11:52 #6
Helt ok.
Tak for din hjælp :-)
23. november 2015 - 12:45 #7
Du har øverst i din kode dette, siger du:

    if(in_array(navn1,$delinger)){$checked = "checked";} else {$checked = "";}
    echo $checked;

Hvilken værdi får du der udskrevet for $checked?
Avatar billede Tomika Nybegynder
23. november 2015 - 14:01 #8
Når navnet passer skriver den 'checked' i variablen $checked.
{$checked = "checked";}
Har sat en echo på så jeg kan se på siden hvad der skrives i variablen. Det virker hvergang. 'Checked' når navnet passer og '' når navnet ikke er i array'et.
23. november 2015 - 14:47 #9
Du har ikke vist nogen kode der skulle resultere i et flueben når $checked = 'checked', men hvis du tilpasser koden du viste i #4 til <?php echo '$checked' ?> burde den i din modal skrive 'checked' når navnet er i arrayen.  Hvis det virker, så ligger problemet vel sagtens i den kode der skal producere fluebenet.
Avatar billede Tomika Nybegynder
23. november 2015 - 16:54 #10
Jeg viser variablen $checked i min modal for at kunne se med egne øjne hvad der står skrevet i den.
Den skriver 'checked' når navnet passer. Det må jo blive skrevet i linien <?php echo '$checked' ?> som står i checkbox koden. Her er hele linien for checkboksen.

<div class="checkbox">
<label><input type="checkbox" <?php echo $checked ?> name="formdeling[]" id="formdeling" value="navn1">navn xxxxxxxx</label>
                </div>

Det virker dog stadig ikke.
23. november 2015 - 17:11 #11
#10 - at det ikke virker betyder sandsynligvis, at du får et tomt felt, selv hvor navnet er i arrayen, hvor du havde forventet teksten 'checked.'
Har du prøvet, som jeg antydede i #9, at ændre koden til ...echo '$checked'... i steded for $checked (altså med anførselstegn)?
Avatar billede Tomika Nybegynder
23. november 2015 - 21:58 #12
Har prøvet både med og uden. Lige nu står der i checkboks linien <?php echo '$checked'; ?>
Bare underligt at når jeg viser $checked variablen direkte på siden kan jeg se at der står værdien checked i den når navnet er i arrayet og bliver tom når navnet ikke er der.
25. november 2015 - 18:51 #13
Ja, det ser mystisk ud.  I begyndelsen af koden giver du $checked en værdi (og kontrolerer med echo at variabelen har værdien) og når du så længere nede i koden echoer variabelen igen er værdien forsvundet.  Jeg ender vel med at tilslutte mig #5.  Hvad kode har du stående mellem de begyndelseslinjer du viser og så modalen?
Avatar billede Tomika Nybegynder
25. november 2015 - 21:07 #14
Jeg har meget kode i mellem de min sql forespørgsel og min modal. Jeg har prøvet at rykke min forespørgsel så den kommer lige før min modal for ikke miste check værdien eller noget undervejs. Men stadig samme resultat desværre.
25. november 2015 - 21:41 #15
Jamen så må jeg desværre nok tilslutte mig claes57's konklusion.  Det eneste jeg kan gøre er nok at ønske dig held og lykke med at finde nogen der er klogere end jeg.
14. december 2015 - 08:50 #16
Tomika, nu lukker du vel spørgsmålet igen?  (Med eget svar.)  Eller venter du stadig på friske indlæg på denne tråd?
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

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