여분필드 관련 질문
본문
질문이 너무 길어 다시 요약했습니다.
요지는 게시물들을 엑셀로 저장할때 여분필드를 나누어 저장한 경우의
값을 어떻게 처리하는 지 조언 부탁드립니다.
게시글의 값중 wr_22는 다음과 같이 분할해서 저장했습니다.
<?
$wr_22 = explode("-",$write['wr_22']);
$sales1 = $wr_22[0];
$sales2 = $wr_22[1];
$sales3 = $wr_22[2];
$sales4 = $wr_22[3];
?>
저장후 목록화면을 보면 잘보이는데
엑셀파일로 저장하고 엑셀에서 보면 안찍혀서 도움을 요청드립니다.
소스내용이 길어서 값을 다루는 부분만 1,2로 요약하자면 이렇습니다.
1. list.skin.php
목록에서 값이 잘보입니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
.
.
.
<form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
.
.
.
<!--wr_1-->
<td class="td_field" title="<?php echo $list[$i]['wr_1'] ?>"><input type="text" name="wr_1[]" value="<?php echo $list[$i]['wr_1'] ?>" id="wr_1_<?php echo $i ?>" class="lists"></td>
<?
$wr_22 = explode("-",$list[$i]['wr_22']);
$sales1 = $wr_22[0];
$sales2 = $wr_22[1];
$sales3 = $wr_22[2];
$sales4 = $wr_22[3];
?>
<!--sales1-->
<td class="td_field" title="<?php echo $list[$i]['sales1'] ?>"><input type="text" name="sales1[]" value="<?=$sales1?>" id="sales1_<?php echo $i ?>" class="lists"></td>
<!--sales2-->
<td class="td_field" title="<?php echo $list[$i]['sales2'] ?>"><input type="text" name="sales2[]" value="<?=$sales2?>" id="sales2_<?php echo $i ?>" class="lists"></td>
<!--sales3-->
<td class="td_field" title="<?php echo $list[$i]['sales3'] ?>"><input type="text" name="sales3[]" value="<?=$sales3?>" id="sales3_<?php echo $i ?>" class="lists"></td>
.
.
.
<script>
$(document).ready(function(){
.
.
.
var value1 = $("#wr_1_<?php echo $i ?>").val(); //wr_1
var value2 = $("#sales1_<?php echo $i ?>").val(); //sales1
var value3 = $("#sales2_<?php echo $i ?>").val(); //sales2
var value4 = $("#sales3_<?php echo $i ?>").val(); //sales3
.
.
.
2. excel_down.php
엑셀파일로 저장해서 보면 안보입니다.
<?php
include_once('./_common.php');
$csv = 'xls';
// MS엑셀 XLS 데이터로 다운로드 받음
if ($csv == 'xls')
{
if($_GET[stx]){
$searches .= "and wr_1 = '{$_GET[stx]}' or sales1 = '{$_GET[stx]}' or sales2 = '{$_GET[stx]}' or sales3 = '{$_GET[stx]}' )";
}
.
.
.
$workbook = new writeexcel_workbook($fname);
$worksheet = $workbook->addworksheet();
// Put Excel data
$data = array('No','필드명1','필드명2','필드명3','필드명4');
$data = array_map('iconv_euckr', $data);
.
.
.
$worksheet->write($i, 1, $row['wr_1']);
$worksheet->write($i, 11, $row['sales1']);
$worksheet->write($i, 12, $row['sales2']);
$worksheet->write($i, 13, $row['sales3']);
.
.
.
참고스킨
https://sir.kr/g5_skin/11199?page=0&stx=%EC%97%91%EC%85%80
답변 1
excel_down.php 의 for 문 안에도,
$wr_22 = explode("-",$write['wr_22']);
$sales1 = $wr_22[0];
$sales2 = $wr_22[1];
$sales3 = $wr_22[2];
$sales4 = $wr_22[3];
코드가 있어야 될 것 같습니다. 혹 이 코드가 있는지.. 살펴볼 수 있을 것 같고..
없다면 넣어준 후..
$worksheet->write($i, 1, $row['wr_1']);
$worksheet->write($i, 11, $row['sales1']);
$worksheet->write($i, 12, $row['sales2']);
$worksheet->write($i, 13, $row['sales3']);
->
$worksheet->write($i, 1, $row['wr_1']);
$worksheet->write($i, 11, $sales1);
$worksheet->write($i, 12, $sales2);
$worksheet->write($i, 13, $sales3);
으로 변경해주어야 할 것 같습니다.
그리고 엑셀파일의 하단부에.. 엑셀파일 형태로 다운받는 코드의 시작부인..
header("Content-Type: application/x-msexcel; ~
바로 위에 exit; 를 넣어주어.. 먼저 화면에 재대로 출력되는지를 살펴보는 것도 좋을 듯 합니다.
중간중간 디버깅 코드로 변수에 값이 제대로 들어가있는지를 확인해 볼 수 있습니다.