이런 구동은 안되나요?

이런 구동은 안되나요?

QA

이런 구동은 안되나요?

본문

3067840328_1593815529.9418.jpg

저는 이렇게 하고 싶어요 인쇄를 할때 임시적으로 제목을 선택하고 인쇄하고 싶은데....

3067840328_1593815651.0192.jpg

선택하고 인쇄하면 선택이 풀려져서 인쇄창이 뜹니다. 제생각은 새로고침 때문에 풀리는 현상 때문인거 같은데 선택란이 임시적으로 고정되어서 인쇄를 할 수 있게끔 할수가 없나요?

이 질문에 댓글 쓰기 :

답변 5

가능해요. 선택값을 지정할 수 잇습니다.

아래 글 참고해 보세요.

https://sir.kr/qa/274085

편의상

분기를 선택하는 화면을 "선택.php"이라 하고

인쇄 화면에 뜬 화면을 "인쇄.php"라고 하겠습니다.

 

선택.php에서 인쇄.php로 어떤 방식으로 전달하느냐에 따라 차이가 있을텐데요.
관리자 화면이고, 이쁘지 않아도 되는, 기능적으로 충실한 화면이면 되기때문에

아마도 iframe에 인쇄.php가 숨겨져있고,

그곳에 인쇄 화면처럼 HTML을 구성한 후 print()함수를 호출하는 방식일거라고 추측이 됩니다.

틀림없이 선택.php에서 선택한 Select값(분기값)은 전달이 되었을거구요.

전달되었으니 분기에 맞는 리스트가 나타나고 있는겁니다.

 

이걸 전제로 설명을 드리자면,


// 인쇄.php
<?php
$bungiValue = $_REQUEST["bungi"]; //선택.php에서 전달한 bungi 파라메터를 $bungiValue에 받는다.
?>
<script>
    $("#분기선택").val( "<?php echo $bungiValue; ?>" ); // 인쇄.php의 분기 셀렉트 창을 자동으로 선택되게 한다.
</script>

 

이와 같은 방식이 될 것입니다.

 

그런데요...
일반적으로 인쇄화면에서는 Select를 띄우지 않고,

전달받은 값이 있기때문에 바로 "[1분기] 2020년 1월" 이라고 텍스트를 출력하는게 일반적이죠.

 

그리고 다음 질문 주실때는,
일부 소스라도 올려주셔야 더욱 좋은 답변을 받으실 수 있답니다.

 

 

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

// 게시물 번호 1번부터 시작
$notice_count = 0;
if ($board['bo_notice']) $notice_count = $board_notice_count;
if ($notice_count)
    $list_num = (($page - 1) * $list_page_rows - $notice_count) + 1;
else
    $list_num = ($page - 1) * ($list_page_rows - $notice_count) + 1;
    

// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;

if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);

add_stylesheet('<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">', 0);

include('tagCol.php');

if($sfl==$tagCol){
    $tag = $stx;
    $stx ='';
}

?>

<?
                            if($list[$i][$tagCol]){
                                $tags = explode(',',$list[$i][$tagCol]);
                                for($k=0; $k<count($tags); $k++){
                        ?>

             <a <?if($tag == $tags[$k]){ echo'class="onTag"'; }?> href="board.php?bo_table=<?=$bo_table?>&sfl=<?=$tagCol?>&stx=<?=$tags[$k]?>"><?=$tags[$k]?>
             </a>
             <?
                            }
                        }
                        ?>
             <div id="bo_list" style="width:<?php echo $width; ?> font-size: 24px; font-weight: bold;">


  <!-- 게시판 페이지 정보 및 버튼 시작 { -->
  <div id="bo_btn_top">
        <div id="bo_list_total">
            <span>Total <?php echo number_format($total_count) ?>건</span>
            <?php echo $page ?> 페이지
        </div>

        <?php if ($rss_href || $write_href) { ?>
        <ul class="btn_bo_user">
            <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn"><i class="fa fa-rss" aria-hidden="true"></i> RSS</a></li><?php } ?>
            <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn"><i class="fa fa-user-circle" aria-hidden="true"></i> 관리자</a></li><?php } ?>
            <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b02 btn"><i class="fa fa-pencil" aria-hidden="true"></i> 글쓰기</a></li><?php } ?>
        </ul>
        <?php } ?>
    </div>
    <!-- } 게시판 페이지 정보 및 버튼 끝 -->

    <!-- 게시판 카테고리 시작 { -->
    <?php if ($is_category) { ?>
    <nav id="bo_cate">
        <h2><?php echo $board['bo_subject'] ?> 카테고리</h2>
        <ul id="bo_cate_ul">
            <?php echo $category_option ?>
        </ul>
    </nav>
    <?php } ?>
    <!-- } 게시판 카테고리 끝 -->

 <!-- } 게시판 카테고리 전체 삭제 시작 -->
    <script>
    // 인쇄.php
<?php
$bungiValue = $_REQUEST["bungi"]; //선택.php에서 전달한 bungi 파라메터를 $bungiValue에 받는다.
?>
<script>
    $("#분기선택").val( "<?php echo $bungiValue; ?>" ); // 인쇄.php의 분기 셀렉트 창을 자동으로 선택되게 한다.
    
  $('#bo_cate_on').css('display','none');
   </script>
    <!-- } 게시판 카테고리 전체 삭제 끝 -->

    <form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <input type="hidden" name="sw" value="">
 <!-- 인쇄 버튼 -->
 
    
    <!-- 인쇄 버튼 끝 -->
     <th align="center"> </th>
<!-- 인쇄 영역 부분 -->
<div id="box">
    <div class="tbl_head01 tbl_wrap">
      <table border="2" cellpadding="0" cellspacing="0">
        <caption>
        <?php echo $board['bo_subject'] ?> 목록
        </caption>
      </table>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr style="
    border-top: black;
"></tr>
    </table>
      <table width="796" border="0" cellspacing="0" cellpadding="0">
        <tr></tr>
      </table>
      
<style type="text/css">
.h {
    font-weight: bold;
    color: #000;
    font-size: 36px;
}
</style>
      
      <!-- 제목 시작 -->
     <div class="h" style="font-size: 36px; text-align: center"><span class="qw">동료상담 대장(<strong style="text-align: center; font-size: 36px;"><strong style="text-align: center; font-size: 36px;">
       <select name="bungi">
         <option value="바나나">바나나</option>
         <option value="사과">사과</option>
         <option value="파인애플" selected="selected">파인애플</option>
       </select>
     </strong></strong>)</span></div>
      <!-- 제목 끝 -->
      
      <table border="1" cellpadding="0" cellspacing="0">
        <thead style="
    border-top: black;
">
          <tr></tr>
         
          <th align="center" scope="col">No</th>
            <th width="56" align="center" scope="col">월/일</th>
            <th width="51" align="center" scope="col">시간(분)</th>
            <th width="68" align="center" scope="col">이용자</th>
            <th width="42" align="center" scope="col">회차</th>
            <th width="143" align="center" scope="col">장애유형 및 장애정도</th>
            <th width="65" align="center" scope="col">상담방법</th>
            <th width="64" align="center" scope="col">상담유형</th>
            <th width="159" align="center" scope="col">상담목적</th>
            <th width="20" align="center" scope="col">지원내용</th>
            <th width="14" align="center" scope="col">진행형태</th>
            <th width="100" align="center" scope="col">이용자 코드</th>
          </tr>
        </thead>
        <tbody>
          <?php
        for ($i=0; $i<count($list); $i++) {
            //여분필드 이름 별표 표시 시작
            if (!$is_admin && $list[$i]['wr_4']) {
    $list[$i]['wr_4'] = preg_replace('/-(\d+)-/e',"'-'.str_repeat('*',strlen('\\1')).'-'",$list[$i]['wr_4']); }           
            //여분필드 이름 별표 표시 끝

            $list[$i]['num'] = $list_num + $i;
         ?>
          <tr class="<?php if ($list[$i]['is_notice']) echo "bo_notice"; ?>">
            <?php if ($is_checkbox) { ?>
            <?php } ?>
            <td width="30" align="center" class="td_num2"><?php
            if ($list[$i]['is_notice']) // 공지사항
                echo '<strong class="notice_icon"><i class="fa fa-bullhorn" aria-hidden="true"></i><span class="sound_only">공지</span></strong>';
            else if ($wr_id == $list[$i]['wr_id'])
                echo "<span class=\"bo_current\">열람중</span>";
            else
                echo $list[$i]['num'];
             ?></td>
            <td align="center" class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><span class="tagInfo">
              <?
                            if($list[$i][$tagCol]){
                                $tags = explode(',',$list[$i][$tagCol]);
                                for($k=0; $k<count($tags); $k++){
                        ?>
              <a <?if($tag == $tags[$k]){ echo'class="onTag"'; }?> href="../board.php?bo_table=<?=$bo_table?>&sfl=<?=$tagCol?>&stx=<?=$tags[$k]?>">
              <?=$tags[$k]?>
              </a>
              <?
                            }
                        }
                        ?>
              <span class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><?php echo $list[$i]['wr_19'] ?></span>일</span></td>
            <td align="center" class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><?php echo $list[$i]['wr_5'] ?></td>
            <td align="center" class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><span class="tagInfo">
             <?
                            if($list[$i][$tagCol]){
                                $tags = explode(',',$list[$i][$tagCol]);
                                for($k=0; $k<count($tags); $k++){
                        ?>
             <a <?if($tag == $tags[$k]){ echo'class="onTag"'; }?> href="board.php?bo_table=<?=$bo_table?>&sfl=<?=$tagCol?>&stx=<?=$tags[$k]?>"><?=$tags[$k]?>
             </a>
             <?
                            }
                        }
                        ?>
           </span>
           <td align="center" class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><?php echo $list[$i]['wr_3'] ?></td>
            <td align="center" class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><?php echo $list[$i]['wr_9'] ?></td>
            <td align="center" class="td_name sv_use" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><span class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><?php echo $list[$i]['wr_20'] ?></span><?php echo $list[$i]['wr_15']; ?></td>
            <td align="center" class="td_name sv_use" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><span class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><?php echo $list[$i]['wr_21'] ?></span><?php echo $list[$i]['wr_16']; ?></td>
            <td align="center" class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"><div class="bo_tit"> <a href="<?php echo $list[$i]['href'] ?>"> <?php echo $list[$i]['icon_reply'] ?>
              <?php
                            if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);
                         ?>
              <?php echo $list[$i]['subject'] ?></a>
              <?php if ($list[$i]['comment_cnt']) { ?>
              <span class="sound_only">댓글</span><span class="cnt_cmt">+ <?php echo $list[$i]['wr_comment']; ?></span><span class="sound_only">개</span>
              <?php } ?>
              </div></td>
            <td align="center" class="td_name sv_use"><?php echo $list[$i]['wr_22']; ?><?php echo $list[$i]['wr_17']; ?></td>
            <td align="center" class="td_name sv_use"><?php echo $list[$i]['wr_23']; ?><?php echo $list[$i]['wr_18']; ?></td>
            <td align="center" class="td_name sv_use"><span class="tagInfo">
              <?
                            if($list[$i][$tagCol2]){
                                $tags = explode(',',$list[$i][$tagCol2]);
                                for($k=0; $k<count($tags); $k++){
                        ?>
              <a <?if($tag == $tags[$k]){ echo'class="onTag"'; }?> href="../board.php?bo_table=<?=$bo_table?>&sfl=<?=$tagCol2?>&stx=<?=$tags[$k]?>">
              <?=$tags[$k]?>
              </a>
              <?
                            }
                        }
                        ?>
            </span></td>
            <?php if ($is_good) { ?>
            <?php } ?>
            <?php if ($is_nogood) { ?>
            <?php } ?>
            </tr>
          <?php } ?>
          <?php if (count($list) == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
        </tbody>
</table>
      <br />
      <p><?php echo $list[$i]['wr_1'] ?></p>
    </div>
</div>

<!-- 인쇄하는 영역 끝 -->

<!-- 인쇄 자바스크립트 -->

<script type="text/javascript">
var initBody;

function beforePrint() {
  boxes = document.body.innerHTML;
  document.body.innerHTML = box.innerHTML;
 }
 function afterPrint() { 
  document.body.innerHTML = boxes;
 }
 function printArea() {
  window.print();
 }

window.onbeforeprint = beforePrint;
 window.onafterprint = afterPrint;
 </script>

<!-- 인쇄 자바스크립트 끝 -->


    <?php if ($list_href || $is_checkbox || $write_href) { ?>
    <div class="bo_fx">
        <?php if ($list_href || $write_href) { ?>
        <ul class="btn_bo_user">
            <?php if ($is_checkbox) { ?>
            <li>
              <button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value" class="btn btn_admin"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button>
          </li>
            <li>
              <button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value" class="btn btn_admin"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button>
            </li>
            <?php } ?>
            <?php if ($list_href) { ?>
            <li><a href="<?php echo $list_href ?>" class="btn_b01 btn"><i class="fa fa-list" aria-hidden="true"></i> 목록</a></li>
            <?php } ?>
            <?php if ($write_href) { ?>
            <li><a href="<?php echo $write_href ?>" class="btn_b02 btn"><i class="fa fa-pencil" aria-hidden="true"></i> 글쓰기</a><span class="tbl_head01 tbl_wrap"><a href="#" onclick="printArea()">인쇄하기</a></span></li>
            <?php } ?>
        </ul>
        <?php } ?>
    </div>
    <?php } ?>

    </form>
     
       <!-- 게시판 검색 시작 { -->
    <fieldset id="bo_sch">
        <legend>게시물 검색</legend>

        <form name="fsearch" method="get">
        <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
        <input type="hidden" name="sca" value="<?php echo $sca ?>">
        <input type="hidden" name="sop" value="and">
        <label for="sfl" class="sound_only">검색대상</label>
        <select name="sfl" id="sfl">
            <option value="wr_subject"<?php echo get_selected($sfl, 'wr_subject', true); ?>>제목</option>
            <option value="wr_content"<?php echo get_selected($sfl, 'wr_content'); ?>>내용</option>
            <option value="wr_subject||wr_content"<?php echo get_selected($sfl, 'wr_subject||wr_content'); ?>>제목+내용</option>
            <option value="mb_id,1"<?php echo get_selected($sfl, 'mb_id,1'); ?>>회원아이디</option>
            <option value="mb_id,0"<?php echo get_selected($sfl, 'mb_id,0'); ?>>회원아이디(코)</option>
            <option value="wr_name,1"<?php echo get_selected($sfl, 'wr_name,1'); ?>>글쓴이</option>
            <option value="wr_name,0"<?php echo get_selected($sfl, 'wr_name,0'); ?>>글쓴이(코)</option>
        </select>
        <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
        <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder="검색어를 입력해주세요">
        <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
        </form>
    </fieldset>
    <!-- } 게시판 검색 끝 -->   
</div>

<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>

<!-- 페이지 -->
<?php echo $write_pages;  ?>


<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
    var f = document.fboardlist;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]")
            f.elements[i].checked = sw;
    }
}

function fboardlist_submit(f) {
    var chk_count = 0;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
            chk_count++;
    }

    if (!chk_count) {
        alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
        return false;
    }

    if(document.pressed == "선택복사") {
        select_copy("copy");
        return;
    }

    if(document.pressed == "선택이동") {
        select_copy("move");
        return;
    }

    if(document.pressed == "선택삭제") {
        if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
            return false;

        f.removeAttribute("target");
        f.action = "./board_list_update.php";
    }

    return true;
}

// 선택한 게시물 복사 및 이동
function select_copy(sw) {
    var f = document.fboardlist;

    if (sw == "copy")
        str = "복사";
    else
        str = "이동";

    var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");

    f.sw.value = sw;
    f.target = "move";
    f.action = "./move.php";
    f.submit();
}
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->
 

되지 않습니다 ㅠㅠ 죄송해요 아무리 찾아봐도 해결이 되지않습니다 ㅠㅠ 

답변으로 올리신 파일은 인쇄.php인거죠?

 

 

 

 

$bungiValue = $_REQUEST["bungi"]; //선택.php에서 전달한 bungi 파라메터를 $bungiValue에 받는다.

  ==> ["bungi"] 쌍따음표 사이에 분기를 전달해주는 파라메터의 이름을 입력해주세요.

 

$("#분기선택").val( "<?php echo $bungiValue; ?>" ); // 인쇄.php의 분기 셀렉트 창을 자동으로 선택되게 한다.

  ==> 위에 올려준 소스상에 바나나, 사과, 파인애플을 넣어두신 곳이 분기가 표시하는 곳이라고 가정할때

  ==> 위 코딩은 아래와 같이 바뀌어야 합니다.

         1. select 태그에 id값 추가

         2. id값을 이용해 값을 지정

         3. 위 코딩을 select 태그 아래로 위치 변경

         4. 아래와 같이 수정 (id값을 #뒤에 써야 함에 주의)


<div class="h" style="font-size: 36px; text-align: center"><span class="qw">동료상담 대장(<strong style="text-align: center; font-size: 36px;"><strong style="text-align: center; font-size: 36px;">
       <select name="bungi" id="bungi">
         <option value="바나나">바나나</option>
         <option value="사과">사과</option>
         <option value="파인애플" selected="selected">파인애플</option>
       </select>
</strong></strong>)</span></div>
<script>
    $("#bungi").val( "<?php echo $bungiValue; ?>" );
</script>
답변을 작성하시기 전에 로그인 해주세요.
전체 123,117 | RSS
QA 내용 검색

회원로그인

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