여분필드 체크박스 도와주세요. 채택완료

write.skin.php 스킨

 

Copy
<div class="form-group">
    <label class="col-sm-2 control-label" for="wr_4">선택</label>
    <div class="col-sm-6">

  <?php
$wr4 = explode("|", $write['wr_4']);
?>
        <input type="checkbox" name="wr4[0]" value="과자" <?php echo ($wr4[0] == "과자") ? "checked" : "";?>>
        <span class="tack-icon bg-darkgray">과자 </span>


        <input type="checkbox" name="wr4[1]" value="사탕" <?php echo ($wr4[1] == "사탕") ? "checked" : "";?>>
        <span class="tack-icon bg-blue"> 사탕</span>

 

        <input type="checkbox" name="wr4[2]" value="껌" <?php echo ($wr4[2] == "껌") ? "checked" : "";?>>
        <span class="tack-icon bg-red"> 껌</span>
 

... .

 

-----------------------------------------------------------------------------------------------------------------

write_update.skin.php 만들어서 이안에 아래 코드를 넣엇습니다.

Copy
?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가


$wr_4 = "$wr4[0] $wr4[1] $wr4[2] $wr4[3] $wr4[4]";
sql_query(" update $write_table set wr_4 = '$wr_4' where wr_id = '$wr_id' ");
?>

-----------------------------------------------------------------------------------------------------------------

체크박스 여분필드인데요.

이걸 뷰페이지에 출려할때 <?=$view[wr_4]?> 이렇게 출력하고 있거든요.

헌데 <span class="tack-icon bg-darkgray"> 이렇게 색을 입혀준 상태로 출력하고 싶은데요.

 

이건 어떻게 해야할까요? <span class="tack-icon bg-darkgray"> <?=$view[wr_4]?> </span>

이렇게 하면 darkgray 색으로만 나오는데 옵션이 4개인데 4개가 다른색이거든요..

 

잘모르는 초보라 도움주실분 계실까요.

 

 

복스리님의 답변대로 

view.skin.php

Copy
$wr4 = explode("|", $view['wr_4']);  

if( trim($wr4[0]) !="")    echo "<span class='tack-icon bg-색1'> {$wr4[0]} </span>";  // 색1으로 출력됨  

if( trim($wr4[1]) !="")    echo "<span class='tack-icon bg-색2'> {$wr4[1]} </span>";  // 색2으로 출력됨  

if( trim($wr4[2]) !="")    echo "<span class='tack-icon bg-색3'> {$wr4[2]} </span>";  // 색3으로 출력됨  

if( trim($wr4[3]) !="")    echo "<span class='tack-icon bg-색4'> {$wr4[3]} </span>";  // 색4으로 출력됨
 

 

write_update.skin.php

Copy
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

$wr_4 = "{$wr4[0]}|{$wr4[1]}|{$wr4[2]}|{$wr4[3]}|{$wr4[4]}";    // | 를 구분자로 사용하여 입력함... sql_query(" update $write_table set wr_4 = '$wr_4' where wr_id = '$wr_id' ");
 

 

 

이렇게 했지만 아래처럼 출력이되어 버리거든요..

1925820036_1530634808.7712.jpg

답변 1개

채택된 답변
+20 포인트

Copy
$colors = array("darkgray", "red", "blue", "yellow");
foreach($wr4 as $k => $v) {
    if(trim($wr4[$k]) != "") echo "<span class='tack-icon bg-".$colors[$k]."'>".$wr4[$k]."</span>";
}
로그인 후 평가할 수 있습니다

답변에 대한 댓글 17개

제대로 나오지 않네요..ㅜ
제가 남긴 건 view.skin.php에 적용하셔야 합니다.
그리고 제대로 안 나온다는 게 정확히 어떤 의민지 모르겠네요.
아예 아무 것도 안 나오는지, 개발자 도구로 해서 봤을 때 class 부분이 정상적으로 적용이 안 되는 건지...
이런 경우는 적용한 페이지를 보여 주시는 게 제일 좋습니다.
뷰페이지에 코드 그대로 이렇게 나오고 있어요.ㅜ


$colors = array("darkgray", "red", "blue", "yellow"); foreach($wr4 as $k => $v) { if(trim($wr4[$k]) != "") echo "".$wr4[$k].""; }


write_update.skin.php이랑
write.skin.php
view.skin.php 코드 제대로 넣은건 맞는건가요.. ㅠ

완전초보라 알수가 없네요 ..
write_update.skin.php 파일엔 저걸 넣으시면 안 됩니다.
애초에 질문에 view.skin.php 파일에 대한 질문만 하셔서 답변을 거기에 맞춘 겁니다.
위에 제가 올린 건 view.skin.php 파일에서만 쓸 수 있는 것입니다.
bg-색1 이렇게 된 class는 아닐 테고 색1이라고 된 부분이 영문으로 된 게 있을 테니 그걸 위에 array라고 된 부분에 차례대로 넣으셔야 합니다.
네 그대로 했습니다. 여전히 안되네요 .

그냥 색과 관계없이

<?=$view[wr_4]?> 하면 체크한값이 전부 한번에 출력되자나요

여분필드 {$wr4[0]} {$wr4[1]} {$wr4[2]} {$wr4[3]} 하나씩 출력할수 있는 방법은 없나요?
$wr4는 explode 함수로 쪼갠 거 맞죠?
print_r($wr4);
이렇게 했을 때 어떻게 나오는지 확인해 보세요.
네 넣어봣는데 변화가 없네요..ㅜ
$wr4 = explode("|", $view['wr_4']);
이건 상단에 쓰신 거죠?
이걸 쓰고도
print_r($wr4);
이게 아무 것도 안 나온다면 wr_4에 값이 없다는 겁니다.
<?=$view[wr_4]?> 로하면 값이 잘출력됩니다.

{$wr4[0]} {$wr4[1]} {$wr4[2]} {$wr4[3]} 색과 관계없이 이걸 하나씩 출력하는 코드를 모르겠어요.

뷰페이지에 넣어야할 코드 전부를 알려주실수 있나요.

초보라 모가 잘못된건지를 모르겠네요.
[code]
$colors = array("darkgray", "red", "blue", "yellow");
$wr4 = explode("|", $view['wr_4']);
foreach($wr4 as $k => $v) {
if(trim($wr4[$k]) != "") echo "<span class='tack-icon bg-".$colors[$k]."'>".$wr4[$k]."</span>";
}
[/code]
이렇게 하면 일단 값이 있는 애들은 다 나옵니다.
$colors = array("darkgray", "red", "blue", "yellow"); $wr4 = explode("|", $view['wr_4']); foreach($wr4 as $k => $v) { if(trim($wr4[$k]) != "") echo "".$wr4[$k].""; }

값이 없다면 아무것도 안나와야 되는데 이렇게 출력되네요. ..

뷰페이지 문제가 아닌가요..
저렇게 나왔다고 하시는 게 php 코드가 그냥 나왔다는 말씀이신가요?
네 맞아요 .ㅜ
[code]
<?php
$colors = array("darkgray", "red", "blue", "yellow");
$wr4 = explode("|", $view['wr_4']);
foreach($wr4 as $k => $v) {
if(trim($wr4[$k]) != "") echo "<span class='tack-icon bg-".$colors[$k]."'>".$wr4[$k]."</span>";
}
?>
[/code]
혹시 위아래로 <? ?> 이거 감싸신 거 아닌가요?
.... ........ 죄송합니다. ㅜㅜㅜ...... 살려주세요... 몇일동안 끙끙대고 답변만 기다렸어요..ㅜㅜㅜㅜㅜ

잘나오네요 너무너무 감사합니다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ



죄송하지만 저 마지막으로 하나만 더..

분류끼리 닥붙어서 나오는데 한칸씩 띄어서 하려면 어떻해야 할까요?
왕계란님 쪽지로 톡하나남겨주시면 스벅쿠폰 보내드릴께요!
커피라도 한잔.드세요!
아닙니다.
마음만 받도록 하겠습니다. 하하하

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고