excel.php 로 파라미터, 값,변수 보내기
본문
리스트페이지에서 엑셀다운로드기능인데요
<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>
버튼을 만든 후 pin_list_Excel.php 로 가게 하였습니다.
근데 문제는 pin_list_Excel.php 에서 전체리스트가 아닌 조건문이 있어서 값을 주고받아야 페이지안에서 쿼리문을 돌려 엑셀다운로드를 되게 하고싶은데요 버튼을클릭하면 바로 엑셀이 다운받아져서 값을 보내고 받는것을 못하겠네요ㅠㅠ excel.php 로 값 주고받는 방법이 따로있을까요??
pin_list_Excel.php
<?php
include_once('./_common.php');
function column_char($i) { return chr( 65 + $i ); }
include_once(G5_LIB_PATH.'/PHPExcel.php');
$it_name = $_REQUEST["it_name"];
$io_id = $_REQUEST["io_id"];
$headers = array('번호','상품명','권 수','가격','핀번호','상태','등록일자');
$widths = array(20);
$header_bgcolor = 'FFABCDEF';
$last_char = column_char(count($headers) - 1);
$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";
$result = sql_query($sql);
for($i=1; $row=sql_fetch_array($result); $i++) {
$rows[] =
array(
$row['no'],
$row['it_name'],
$row['io_id'],
$row['it_price'],
$row['pin'],
$row['status'],
$row['datetime']
);
}
$data = array_merge(array($headers), $rows);
$excel = new PHPExcel();
// $excel->setActiveSheetIndex(0)->getStyle( "A1:${last_char}1" )->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB($header_bgcolor);
$excel->setActiveSheetIndex(0)->getStyle( "A:$last_char" )->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setWrapText(false);
foreach($widths as $i => $w) $excel->setActiveSheetIndex(0)->getColumnDimension( column_char($i) )->setWidth($w);
$excel->getActiveSheet()->fromArray($data,NULL,'A1');
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"pin_list-".date("ymd", time()).".xls\"");
header("Cache-Control: max-age=0");
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$writer->save('php://output');
?>
답변 2
pin_list_Excel.php 뒤에 ?it_name=변수값&io_id=변수값해서 넘겨주시면 될거 같습니다.
ajax 로 하시면
js 부분에 다음 추가하시구요
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<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>
php 파일에는 값 받아오셔야하니
$it_name = $_POST["it_name"];
$io_id = $_POST["io_id"];
추가
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.