implode 로 넘어온 문자열을 explode 로 처리 했는데
본문
implode 로 넘어온 문자열을 explode 로 처리 한 후 for을 돌리는데
값이 안나오네요.. 사람들 이름이 출력이 되어야 하는데요
print_r 로 확인하면 값은 잘 넘어오더군요..
엑셀로 다운 받고 있는데 $i 를 1부터 해야 하는데 이것도 문제네요..
이걸 1부터 해버리면 배열에서 0 번째 사람이 빠질텐데..
엑셀 다운 받으면 사람수 만큼 칸은 생성이 되는데 왜 이름이 안나올까요 ..
---넘기는 페이지---
<?php
$excel_name = array();
for ($i=0; $row=sql_fetch_array($result); $i++) {
if($row['bar_name2']) { // 수령자가 있으면 수령자 이름으로
$excel_name[] = $row['bar_name2'];
} else { // 수령자가 없으면 주문자 이름으로
$excel_name[] = $row['bar_name'];
}
}
$result_name = implode(',', $excel_name);
?>
<h2>편지 출력</h2>
<div class="container">
<div class="box">
<form name="frm_excel" id="frm_excel" action="./barcode_letter_paper_down.php" method="post">
<textarea name="result_name" id="result_name" style=""><?php echo $result_name ?></textarea>
... 생략
---엑셀 출력 페이지---
// 내용 출력
$result_name = explode(',', $_POST["result_name"]);
for($i = 0; $i < count($result_name); $i++) {
$barname = $result_name;
$str = array("/프","/AS","/as",);
$barname = str_replace($str,'',$barname);
$barname = preg_replace("/[^a-zA-Z가-힣ㄱ-ㅎㅏ-ㅣ*]/u", " ", $barname);
$barname = rtrim($barname);
$name_chk = preg_match("/[\xA1-\xFE][\xA1-\xFE\*]/", $barname);
if($name_chk == 1) {
$barname = $barname.'님';
} else {
$barname = $barname;
}
// 셀 병합
$objPHPExcel->setActiveSheetIndex(0) ->mergeCells('A'.$i.':J'.$i) -> setCellValue('A'.$i, $barname);
// 셀 크기
$objPHPExcel->setActiveSheetIndex(0)->getRowDimension($i)->setRowHeight(195);
// 폰트
$objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->setName('맑은 고딕')->setSize(18);
// 폰트 정렬
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
}
답변 3
$barname = $result_name; -> $barname = $result_name[$i];
$result_name = explode(',', $_POST["result_name"]);
for($i = 0; $i < count($result_name); $i++) {
$barname = $result_name[ $i];
또는
$i=1;
foreach( $result_name as $barname) {
// $barname = $result_name[ $i];
...
$i++;
}
두 분 모두 감사합니다.^^
답변을 작성하시기 전에 로그인 해주세요.