25. januar 2006 - 05:11
Der er
12 kommentarer og 1 løsning
Checked gemtet poster?
hej exp'er Jeg vil høre om der nogle der kan fortælle hvad jeg gør forkert her da den gerne skulle sætte et hak i dem som der er tilføjt til database de kommer ud som en array() og den hedder billeder håber I forstår hvad det er jeg gerne vil have den skal gøre ------------- kode -------------------------- <? $out = "<table width='100%' border='0' cellspacing='0' cellpadding='0'>\n"; $out .= ""; $dir = "../billeder/"; $odir = opendir($dir); $filer = readdir($odir); $exp_img = explode("|",$rs[billeder]); $i = 0; $img_b = count($exp_img)-1; while ($filer = readdir($odir)){ if($filer != ".." AND $filer != "."){ if ($i%12 == 0) $out .= "<tr>"; if(file_exists($dir.$exp_img[$i])){ $checked = "checked"; } $out .= "<td style=\"padding-left:3px; border-left:1px solid #000000;\"><label onmouseover=\"showimgOVER('simg','".$dir."".$filer."')\" onmouseout=\"showimgOUT('simg')\">"; $out .= "<input name='billeder[]' checked='$checked' type='checkbox' value='$filer'>". substr(strtolower($filer),0,-4) ."</label></td>"; $i++; if ($i%12 == 0) $out .= "</tr>\n"; } } if ($i%12 != 0) $out .= "</tr>\n"; $out .= "</table>"; echo $out; ?> //expnet
Annonceindlæg fra Kommando
25. januar 2006 - 08:44
#1
Du tæller både arrayet af $filer og $exp_img op på samme tid. Der er dog ingen garanti for at de vil passe på samme tid. I stedet skal du have en ydre løkke hvor du tæller filer op. Inden i den skal du have en indre (doh!) løkke som løber hele $exp_img igennem for hver fil-værdi i den ydre. Det kunne laves over følgende skabelon: $exp_img = explode("|", $rs[billeder]); odir = opendir($dir); while ($fil = readdir($odir)) { if ($fil != "." && $fil != "..") { $checked = ""; for ($i=0; $i<count($exp_img); $i++) { if ($dir . $exp_img[$i] == $fil) { $checked = "checked"; break; } } // Og så din udskrift her, samt den logik, // som tæller op med 12 filer pr. række. } } PS: Hvad er pointen med sådan noget som: $out .= ""; - og: ... $dir."".$filer ... Den eneste effekt er at du bruger CPU-ressourcer på ingenting.
25. januar 2006 - 17:37
#2
nielle -> jeg synes ikke det vil som jeg gerne vil have det til... hvad er det lige jeg gør forkert <? $out = "<table width='100%' border='0' cellspacing='0' cellpadding='0'>\n"; $exp_img = explode("|", $rs[billeder]); $dir = "../billeder/"; $odir = opendir($dir); while ($fil = readdir($odir)) { if ($fil != "." && $fil != "..") { $checked = ""; for ($i=0; $i<count($exp_img); $i++) { if ($dir . $exp_img[$i] == $fil) { $checked = "checked"; break; } } if ($i%12 == 0) $out .= "<tr>"; $out .= "<td style=\"padding-left:3px; border-left:1px solid #000000;\"><label onmouseover=\"showimgOVER('simg','".$dir."".$fil."')\" onmouseout=\"showimgOUT('simg')\">"; $out .= "<input name='billeder[]' checked='$checked' type='checkbox' value='$fil'>". substr(strtolower($fil),0,-4) ."</label></td>"; if ($i%12 == 0) $out .= "</tr>\n"; } } $out .= "</table>"; echo $out; ?>
25. januar 2006 - 18:38
#3
Hvad får du udskrevet?
26. januar 2006 - 15:44
#4
alle samme checked
26. januar 2006 - 17:33
#5
Atributten checked='$checked' skal helt udelades for de checkbox'e som ikke skal være afkrydset.
26. januar 2006 - 20:24
#6
<select name="billeder[]" multiple="multiple" size="1" style="height:175;"> <? $exp_img = explode("|", $rs[billeder]); $dir = "../billeder/"; $odir = opendir($dir); while ($fil = readdir($odir)) { if ($fil != "." && $fil != "..") { $checked = ""; for ($i=0; $i<count($exp_img); $i++) { if ($exp_img[$i] == $fil) { ?> <option selected="selected" value="<?=$fil?>">[<?=$i?>] <?=$fil?></option> <? break; } } ?> <option value="<?=$fil?>">[<?=$i?>] <?=$fil?></option> <? } } ?> </select> har prøve lave den sådaner her men det ikke virke... kan du ikke hjælpe mig har snart rodet med den i 3uger
26. januar 2006 - 20:38
#7
Hvis du bruger en oprtion i stedet for ... så er det atributten selected="selected" som simpelæthen skal "mangle" på de options som ikke skal være selected.
26. januar 2006 - 20:47
#8
Måske noget i denne stil? <select name="billeder[]" multiple="multiple" size="1" style="height:175;"> <? $exp_img = explode("|", $rs[billeder]); $dir = "../billeder/"; $odir = opendir($dir); while ($fil = readdir($odir)) { if ($fil != "." && $fil != "..") { $selected = false; for ($i=0; $i<count($exp_img); $i++) { if ($exp_img[$i] == $fil) { $selected = true; break; } } echo "<option" . (($selected) ? " selected='selected'" : "") . " value='" . $fil . "'>[" . $i . "] " . $fil . "</option>"; } } ?> </select>
06. februar 2006 - 18:22
#9
Har du fået kigget på det?
16. februar 2006 - 15:29
#10
nielle undskylder jeg har ikke være så meget ved pc'en men hvis du ligger et svar så er der nogle point på vej
16. februar 2006 - 22:15
#11
Skulle du få problemer med det, så spørger du bare igen her i dette spørgsmål. :^) ... og et svar :^)
27. februar 2006 - 18:52
#12
Så mangler du bare at acceptere svaret :^)
Vi tilbyder markedets bedste kurser inden for webudvikling