배열로 라디오 버튼 만들었을때 체크되어 지도록 하는 방법은 어떻게되나요

배열로 라디오 버튼 만들었을때 체크되어 지도록 하는 방법은 어떻게되나요

QA

배열로 라디오 버튼 만들었을때 체크되어 지도록 하는 방법은 어떻게되나요

본문

아래와 같이 배열로 라디오 입력 버튼을 만들었을때  1번이 체크되어지도록 하려면 어찌하면 되나요


<?php    $cf_sub200 = array("1번,"2번");
      for($i=0;$i<=1;$i++){?>
  <input type="radio" name="<?php echo $code_name?>[0]" value="<?php echo $cf_sub200[$i]?>"<?php echo (${$code_name}['0'] == "{$cf_sub200[$i]}") ? " checked" : "";?>> <?php echo $cf_sub200[$i]?>
<?php }    ?>

이 질문에 댓글 쓰기 :

답변 6

$cf_sub1 배열이 처음에 저장되지 않은 상태에서 접근 하려고 하면 오류가 발생 하겠지요~

우선 $cf_sub1 배열을 초기화 해주기 위해 아래와 같이 했습니다.


<div class="row gx-3">
    <div class="py-1 col-xl-12">
        <span class="fw-bold">1. 최신글 스킨</span>
        <?php
        $cf_sub100 = array("basic","basic2","basic3");
        for($i = 0; $i <= 55; $i++) {
            $checked = '';
            if (!empty($cf_sub1[0]) && $cf_sub1[0] == $cf_sub100[$i]) {
                $checked = 'checked';
            }
            ?>
            <input type="radio" name="<?php echo $code_name?>[0]" value="<?php echo $cf_sub100[$i]?>" <?php echo $checked; ?>>
            <?php echo $cf_sub100[$i]; ?>
        <?php } ?>
    </div>
</div>
<div class="row gx-3 alert alert-success" role="alert">
    <div class="py-1 col-xl-1">
        <span class="rounded-0 py-2">게시판 ID</span>
    </div>
    <div class="py-1 col-xl-1">
        <input type="text" name="<?php echo $code_name?>[1]" value="<?php echo (!empty($cf_sub1[1])) ? $cf_sub1[1] : '게시판 ID'; ?>" class="form-control rounded-0 form-control-sm border border-secondary" rows="12" size="155">
    </div>
    <!-- 나머지 필드도 동일하게 처리 -->
</div>

그리고 config_form_update_custom.php 파일에서 $cf_sub1배열을 사용하기 전에 초기화 해줍니다.


$cf_sub1 = array();
for ($i = 0; $i <= 10; $i++) {
    if (!empty($_POST['cf_sub1'][$i])) {
        $cf_sub1[$i] = $_POST['cf_sub1'][$i];
    }
}
$cf_1_subj = implode(',', $cf_sub1);
sql_query("UPDATE {$g5['config_table']} SET cf_1_subj = '$cf_1_subj'");

이렇게 하시면 되지 않을까 합니다.

네~ 감사합니다.
오류 없이 잘 되구~ 업데이트 하는 부분을 간결하게 해 주셔서 대단히 감사합니다~~
그런데  스킨선택부분은 기본 선택이 되어지지 않은 상태로 출력되네요..

스킨을 기본값으로 설정되게 하려면 $cf_sub1[0] 값이 비어 있을 경우에 기본스킨으로 선택되게 해야 될 것 같습니다.


<?php
$cf_sub100 = array("basic", "basic2", "basic3");
$defaultSkin = "basic"; // 기본 스킨 값

for ($i = 0; $i <= 55; $i++) {
    $checked = '';

    if ((!empty($cf_sub1[0]) && $cf_sub1[0] == $cf_sub100[$i]) || (empty($cf_sub1[0]) && $defaultSkin == $cf_sub100[$i])) {
        $checked = 'checked';
    }
    ?>
    <input type="radio" name="<?php echo $code_name?>[0]" value="<?php echo $cf_sub100[$i]?>" <?php echo $checked; ?>>
    <?php echo $cf_sub100[$i]; ?>
<?php } ?>


$defaultSkin 변수를 설정해서 기본 스킨 값을 지정해줍니다. $cf_sub1[0] 값이 비어 있고, $defaultSkin 값이 현재 있는 스킨 값과 일치한다면, 해당 스킨을 선택한 것으로 처리되게 하면 되지 않을까 합니다.


<?php
$code_name = 'item';
$item = array('1번');
$cf_sub200 = array("1번","2번");
for ($i = 0, $i_cnt = count($cf_sub200); $i < $i_cnt; $i++) {
?>
  <input type="radio" name="<?php echo $code_name?>[0]" value="<?php echo $cf_sub200[$i]?>"<?php echo (${$code_name}['0'] == "{$cf_sub200[$i]}") ? " checked" : "";?>> <?php echo $cf_sub200[$i]?>
<?php
}
?>

베르만님 답변감사합니다.. 님과 같이 하니 잘 되네요..

그런데   [0] ---- > [10]으로 바꾸면 오류가 나네요.... 위처럼 하고 싶은 곳이 여러곳인데.....

 

<?php echo (

Empty( ${$code_name}['0'] ) ||

${$code_name}['0'] == "{$cf_sub200[$i]}") ? " checked" : "";

?>

 

<?php echo (

Empty( ${$code_name}['0'] ) ||

${$code_name}['0'] == "{$cf_sub200[$i]}") ? " checked" : "";

?>
내용대로 하니 라디오 선택자 마지막거에 체크가 잘 되네요...
마지막거에 선택되어지는 거 맞지요~~?
아래 내용도 한번 부탁드립니다...

아래와 같이 배열로 라디오 입력 버튼을 만들었을 때
  1번이 체크 되도록 하려면 어찌하면 되나요...
==
1번이 무엇인지 잘 이해가 안 갔는데

      for($i=0;$i<=1;$i++)에서 $i가 1이라면


<?php echo (

$i==1 ||

${$code_name}['0'] == "{$cf_sub200[$i]}") ? " checked" : "";

?>
이렇게 하면 됩니다만
궁극적으로 원하시는 것은 아니라고 생각 됩니다.

원하시는 것을 간략하게라도 설명을 곁들이면 좋을 듯합니다.

엑스엠엘님 답변감사합니다. 앞뒤 내용을 더 올려 보시라길래 아래와 같이 올립니다. 너무 길어서 ~~`죄송합니다

cf_1_subj 을 배열로 쪼개서 이용하기위해 아래와 같이 하였습니다.

작동은 잘 되는데 그누설치하고 처음에 값이 저장이 안된상태에서는 오류메세지가 무수히 뜹니다. input 부분에서 오류내용이 첨부이미지 처름 뜨고요~~thumb-3661035113_1688071944.5443_730x222.png
 


1단계: bs_custom_cf_sub1.php 파일만들고
2단계: config_form.php 에 아래와 같이 인클루드하고
<?php  $cf_sub1 = explode(",",$config['cf_1_subj']); {
    $code_name = "cf_sub1"; ?>
    <?php include G5_THEME_PATH . '/include/bs_custom/bs_custom_cf_sub1.php'; ?>
<?php }?>
3단계:config_form_update.php 에 아래와 같이 인클루드하고
include G5_THEME_PATH . '/include/bs_custom/config_form_update_custom.php';
 
4단계: bs_custom_cf_sub1.php 의 내용은 아래와 같습니다. 내용이 길어서 처음 일부분만 올립니다.
같은 내용이 반복됩니다.
==========================================
<div   class="row gx-3">
            <div class="py-1 col-xl-12">
                <span class="fw-bold">1.최신글스킨</span>
                <?php    $cf_sub100 = array("basic","basic2","basic3");
                    for($i=0;$i<=55;$i++){?>
                <input type="radio" name="<?php echo $code_name?>[0]" value="<?php echo $cf_sub100[$i]?>"<?php echo (${$code_name}['0'] == "{$cf_sub100[$i]}") ? " checked" : "";?>> <?php echo $cf_sub100[$i]?>
                <?php }    ?>
            </div>
        </div>
        <div   class="row gx-3 alert alert-success" role="alert">
             <div class="py-1 col-xl-1">
                <span class="rounded-0 py-2">게시판id</span>
            </div>
            <div class="py-1 col-xl-1">
                <input type="text" name="<?php echo $code_name?>[1]" value="<?php if(empty($cf_sub1[1])) echo "게시판id";else echo $cf_sub1[1];?>"class="form-control   rounded-0 form-control-sm   border border-secondary" rows=12 size="155" >
            </div>
            <div class="py-1 col-xl-1">
                <span class="rounded-0 py-2  badge-size text_xs">글개수</span>
            </div>
            <div class="py-1 col-xl-1">
                <input type="text" name="<?php echo $code_name?>[2]" value="<?php if(empty($cf_sub1[2])) echo "글개수";else echo $cf_sub1[2];?>"class="form-control   rounded-0 form-control-sm   border border-secondary" size="5" >
            </div>
            <div class="py-1 col-xl-1">
                <span class="rounded-0 py-2  badge-size text_xs">제목길이</span>
            </div>
            <div class="py-1 col-xl-1">
                <input type="text" name="<?php echo $code_name?>[3]" value="<?php if(empty($cf_sub1[3])) echo "제목길이";else echo $cf_sub1[3];?>"class="form-control   rounded-0 form-control-sm   border border-secondary" size="5" >
            </div>
            <div class="py-1 col-xl-1">
                <span class="rounded-0 py-2  badge-size text_xs">본문길이</span>
            </div>
             <div class="py-1 col-xl-1">
                <input type="text" name="<?php echo $code_name?>[4]" value="<?php if(empty($cf_sub1[4])) echo "본문길이";else echo $cf_sub1[4];?>"class="form-control   rounded-0 form-control-sm   border border-secondary" size="5" >
            </div>
            <div class="py-1 col-xl-3">
                <span class="fw-bold">출력$cf_sub1[6]</span>
                <?php    $cf_sub101 = array("header","index","right","top","bottom");
                    for($i=0;$i<=4;$i++){?>
                <input type="radio" name="<?php echo $code_name?>[5]" value="<?php echo $cf_sub101[$i]?>"<?php echo (${$code_name}['5'] == "{$cf_sub101[$i]}") ? " checked" : "";?>> <?php echo $cf_sub101[$i]?>
                <?php }    ?>
            </div>
            <div class="py-1 col-xl-1">
                <span class="fw-bold">출력$cf_sub1[1]</span>
                <?php    $cf_sub102 = array("yes","no");
                    for($i=0;$i<=1;$i++){?>
                <input type="radio" name="<?php echo $code_name?>[6]" value="<?php echo $cf_sub102[$i]?>"<?php echo (${$code_name}['6'] == "{$cf_sub102[$i]}") ? " checked" : "";?>> <?php echo $cf_sub102[$i]?>
                <?php }    ?>
            </div>
        </div>
===========================================
5단계: config_form_update_custom.php 내용을 아래와 같이 하였습니다.
(실제는 40개 정도로 쪼갰는데 너무길어 10개로 쪼갠것으로 올립니다)
$cf_1_subj = "$cf_sub1[0],$cf_sub1[1],$cf_sub1[2],$cf_sub1[3],$cf_sub1[4],$cf_sub1[5],$cf_sub1[6],$cf_sub1[7],$cf_sub1[8],$cf_sub1[9],$cf_sub1[10]";
sql_query(" update {$g5['config_table']} set cf_1_subj = '$cf_1_subj'");
 
 
 
 

엑스엠엘님 1번이 체크 되도록 한다는 의미는

 

  <?php    $cf_sub100 = array("basic","basic2","basic3"); 

~~~이하 생략~~~~~~~~~

 

위와 같다면  basic 를 뜻합니다.. 배열의 제일 처음것~~~

이 선택되면 좋을 듯해서요~~

답변을 작성하시기 전에 로그인 해주세요.
전체 56
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT