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

excel.php 로 파라미터, 값,변수 보내기 채택완료

dudqls 2년 전 조회 2,497

리스트페이지에서 엑셀다운로드기능인데요

</p>

<p><button type="button" onclick="location.href='<?php echo G5_URL?>/pin_list_Excel.php'" target="_blank" class="btn btn-success" style="margin: 0 auto 20px;">엑셀다운로드</button></p>

<p>

버튼을 만든 후 pin_list_Excel.php 로 가게 하였습니다. 

근데 문제는 pin_list_Excel.php 에서 전체리스트가 아닌 조건문이 있어서 값을 주고받아야 페이지안에서 쿼리문을 돌려 엑셀다운로드를 되게 하고싶은데요 버튼을클릭하면 바로 엑셀이 다운받아져서 값을 보내고 받는것을 못하겠네요ㅠㅠ excel.php 로 값 주고받는 방법이 따로있을까요??

pin_list_Excel.php

</p>

<p><?php</p>

<p>include_once('./_common.php');</p>

<p>function column_char($i) { return chr( 65 + $i ); }</p>

<p>include_once(G5_LIB_PATH.'/PHPExcel.php');</p>

<p> </p>

<p>$it_name = $_REQUEST["it_name"];</p>

<p>$io_id = $_REQUEST["io_id"];</p>

<p> </p>

<p>$headers = array('번호','상품명','권 수','가격','핀번호','상태','등록일자');</p>

<p>$widths  = array(20);</p>

<p>$header_bgcolor = 'FFABCDEF';</p>

<p>$last_char = column_char(count($headers) - 1);</p>

<p>$sql = "SELECT * FROM 테이블 a INNER JOIN 테이블 b ON a.it_id = b.it_id WHERE a.ca_id = 'pg' and b.it_name = '$it_name' and b.io_id = '$io_id' ORDER BY b.datetime desc";</p>

<p>$result = sql_query($sql);</p>

<p>for($i=1; $row=sql_fetch_array($result); $i++) {</p>

<p>    $rows[] =</p>

<p>    array(  </p>

<p>    $row['no'],  </p>

<p>    $row['it_name'],  </p>

<p>    $row['io_id'],  </p>

<p>    $row['it_price'],  </p>

<p>    $row['pin'],</p>

<p>    $row['status'],</p>

<p>    $row['datetime']</p>

<p>     );</p>

<p>}</p>

<p> </p>

<p>$data = array_merge(array($headers), $rows);</p>

<p>$excel = new PHPExcel();</p>

<p>// $excel->setActiveSheetIndex(0)->getStyle( "A1:${last_char}1" )->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB($header_bgcolor);</p>

<p>$excel->setActiveSheetIndex(0)->getStyle( "A:$last_char" )->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setWrapText(false);</p>

<p>foreach($widths as $i => $w) $excel->setActiveSheetIndex(0)->getColumnDimension( column_char($i) )->setWidth($w);</p>

<p>$excel->getActiveSheet()->fromArray($data,NULL,'A1');</p>

<p>header("Content-Type: application/octet-stream");</p>

<p>header("Content-Disposition: attachment; filename=\"pin_list-".date("ymd", time()).".xls\"");</p>

<p>header("Cache-Control: max-age=0");</p>

<p>$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');</p>

<p>$writer->save('php://output');</p>

<p>?></p>

<p>

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

답변 2개

채택된 답변
+20 포인트
2년 전
pin_list_Excel.php 뒤에 ?it_name=변수값&io_id=변수값해서 넘겨주시면 될거 같습니다.
로그인 후 평가할 수 있습니다

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

A
2년 전

ajax 로 하시면

 

js 부분에 다음 추가하시구요

 

</p>

<p><script src="<a href="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>" target="_blank" rel="noopener noreferrer">https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script></a>

<script>

    $(document).ready(function(){

        $("#excelDownloadBtn").click(function(){

            var it_name = "상품명";

            var io_id = "권 수";

            

            $.ajax({

                url: "excel.php",

                type: "POST",

                data: {

                    it_name: it_name,

                    io_id: io_id

                },

                success: function(response){

                    //여기에 추가하시려는 부분

                }

            });

        });

    });

</script></p>

<p>

 

php 파일에는 값 받아오셔야하니

 

</p>

<p>$it_name = $_POST["it_name"];

$io_id = $_POST["io_id"];</p>

<p>

 

추가

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

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

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

로그인