테스트 사이트 - 개발 중인 베타 버전입니다

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

카산 2년 전 조회 3,471

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

</p>

<p><?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 }    ?></p>

<p>

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

답변 6개

채택된 답변
+20 포인트

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

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

</p>

<p><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배열을 사용하기 전에 초기화 해줍니다.

</p>

<p>$cf_sub1 = array();

for ($i = 0; $i <= 10; $i++) {

    if (!empty($_POST['cf_sub1'][$i])) {

        $cf_sub1[$i] = $_POST['cf_sub1'][$i];

    }

}</p>

<p>$cf_1_subj = implode(',', $cf_sub1);

sql_query("UPDATE {$g5['config_table']} SET cf_1_subj = '$cf_1_subj'");

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

카산
2년 전
네~ 감사합니다.
오류 없이 잘 되구~ 업데이트 하는 부분을 간결하게 해 주셔서 대단히 감사합니다~~
그런데 스킨선택부분은 기본 선택이 되어지지 않은 상태로 출력되네요..
웹메이킹
2년 전
스킨을 기본값으로 설정되게 하려면 $cf_sub1[0] 값이 비어 있을 경우에 기본스킨으로 선택되게 해야 될 것 같습니다.
[code]
<?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 } ?>
[/code]

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

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

카산
2년 전

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

 

  

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

 

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

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

로그인 후 평가할 수 있습니다

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

카산
2년 전

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

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

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

</p>

<p>1단계: bs_custom_cf_sub1.php 파일만들고</p>

<p>2단계: config_form.php 에 아래와 같이 인클루드하고</p>

<p><?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 }?></p>

<p>3단계:config_form_update.php 에 아래와 같이 인클루드하고</p>

<p>include G5_THEME_PATH . '/include/bs_custom/config_form_update_custom.php';

 </p>

<p>4단계: bs_custom_cf_sub1.php 의 내용은 아래와 같습니다. 내용이 길어서 처음 일부분만 올립니다.</p>

<p>같은 내용이 반복됩니다.</p>

<p>==========================================</p>

<p><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"></p>

<p>             <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></p>

<p>            <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></p>

<p>        </div></p>

<p>===========================================</p>

<p>5단계: config_form_update_custom.php 내용을 아래와 같이 하였습니다.</p>

<p>(실제는 40개 정도로 쪼갰는데 너무길어 10개로 쪼갠것으로 올립니다)</p>

<p>$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'");</p>

<p> </p>

<p> </p>

<p> </p>

<p> </p>

<p>

로그인 후 평가할 수 있습니다

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

php echo (

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

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

?>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

카산
2년 전
<?php echo (

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

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

?>
내용대로 하니 라디오 선택자 마지막거에 체크가 잘 되네요...
마지막거에 선택되어지는 거 맞지요~~?
아래 내용도 한번 부탁드립니다...
엑스엠엘
2년 전
아래와 같이 배열로 라디오 입력 버튼을 만들었을 때
1번이 체크 되도록 하려면 어찌하면 되나요...
==
1번이 무엇인지 잘 이해가 안 갔는데

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


<?php echo (

$i==1 ||

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

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

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

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

카산
2년 전

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

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
2년 전
앞뒤 내용을 더 올려 보세요.

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

2년 전

</p>

<p><?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

}

?></p>

<p>

로그인 후 평가할 수 있습니다

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

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

로그인