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

implode 로 넘어온 문자열을 explode 로 처리 했는데 채택완료

웹프리죤 4년 전 조회 1,538

 

implode 로 넘어온 문자열을 explode 로 처리 한 후 for을 돌리는데

값이 안나오네요.. 사람들 이름이 출력이 되어야 하는데요

 

print_r 로 확인하면 값은 잘 넘어오더군요..

 

 

엑셀로 다운 받고 있는데 $i 를 1부터 해야 하는데 이것도 문제네요..

이걸 1부터 해버리면 배열에서 0 번째 사람이 빠질텐데..

 

엑셀 다운 받으면 사람수 만큼 칸은 생성이 되는데 왜 이름이 안나올까요 ..

 

---넘기는 페이지---

</p>

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

    ?></p>

<p>    

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

<p>... 생략</p>

<p>

 

---엑셀 출력 페이지---

</p>

<p>// 내용 출력

$result_name = explode(',', $_POST["result_name"]);

for($i = 0; $i < count($result_name); $i++) {</p>

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

<p>    if($name_chk == 1) {

        $barname = $barname.'님';

    } else {

        $barname = $barname;

    }

    

    

    // 셀 병합

    $objPHPExcel->setActiveSheetIndex(0) ->mergeCells('A'.$i.':J'.$i) -> setCellValue('A'.$i, $barname);</p>

<p>    // 셀 크기

    $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($i)->setRowHeight(195);</p>

<p>    // 폰트

    $objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->setName('맑은 고딕')->setSize(18);</p>

<p>    // 폰트 정렬

    $objPHPExcel->setActiveSheetIndex(0)->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);</p>

<p>

}</p>

<p>

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

답변 3개

채택된 답변
+20 포인트
4년 전

$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++;

}

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

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

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

로그인