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

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

QA

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

답변 6

본문

아래와 같이 배열로 라디오 입력 버튼을 만들었을때  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 를 뜻합니다.. 배열의 제일 처음것~~~

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로