주문 내역 선택 엑셀 다운 오류

주문 내역 선택 엑셀 다운 오류

QA

주문 내역 선택 엑셀 다운 오류

본문

주문 내역에서 버튼은

 

<span onclick="Excel()">[excel]</span>

 

이것이고

 

스크립트는

 

function Excel() {

var fm = document.forderlist;
 fm.target = "hiddenframe";
 fm.action = "orderlist_ex2.php";
 fm.method = "post";
 fm.submit();
}

 

이것입니다.

 

orderlist_ex2.php 의 내용은

 

<?
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=file.xls");
header("Content-Description: PHP4 Generated Data");

include "_common.php";

if($_POST['chk']) {
for ($i=0; $i<count($_POST['chk']); $i++) {

$k    = $_POST['chk'][$i];
$od_id[] = $_POST['od_id'][$k];

}
$od = implode(", ", $od_id);
$where = "WHERE od_id IN($od)";
}
?>
<table border="1">
<tr>
<th>od_id</th>
</tr>
<?
$que = sql_query("SELECT * FROM {$g5['g5_shop_order_table']} $where order by od_id");
while($row = sql_fetch_array($que)) {
?>
<tr>
<td style='mso-number-format:\@;'><?=$row['od_id']?></td>
</tr>
<?
}
?>
</table>

 

입니다. 정상적으로 엑셀은 다운 되는데 선택된 것이 아닌 현재 페이지 전체의 주문번호가 나오네요.

 

어디가 잘 못 된 걸까요? ㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

while문장에서 선택된부분에 대해서 if로 조건문 으로 해서 처리해주면될꺼 같습니다~

 

전에도 말씀드렸는데 의뢰가 힘듭니다. 제 개인 일이나 그런 의뢰가 아니구요 회사일이고 영세 회사에서 금액내기가 힘들어서 자력으로 해결해야 합니다. 제가 지금 다 배울 순 없는 노릇이고 고수분들께서 아량을 베풀어 주시면서 조금씩 해나가고 있습니다. 저는 디자인과 퍼블리싱 하고 있어서 저한테 개인의뢰 들어오거나 하는 것들은 전부 의뢰 맡기고 있습니다. 여태 여기뿐 아니라 아는 프로그래머들한테 의뢰 맡기고 다 정상적으로 해오고 있지만 이번 건은 사정상 안되서 여기다 도움을 요청하는 거에요.

그러시면 while문장과 if조건 문을 조금만 공부하시면 쉽게 해결할수있을리라 생각됩니다.  조금만 노력해서 한번 도전 해보시기는게 현실적으로 맞을듯싶습니다.~

지금 보면 while이랑 if만 안다고 되는게 아닌거 같은게 제가 여태 조금씩 공부는 했었거든요.

보면 윗단에서 chk값이 넘어오면 od_id를 배열처리하구 합친거 같은데

아랫단에는 order_table에서 od_id를 가져온 거 같거든요?

제가 알기로 while은 반복해주는거로 알고 있는데 row줄로 od_id를 반복해준다는데

위에서 가져온거랑 연관이 있는건지도 모르겠고 if를 쓴다고 하더라도 어떻게 써야 할지 모르겠어요

이건 짧게 공부해서 되는게 아닌거 같은데요 ㅠㅠ

관리자쪽 보시면 이와 비슷한 예제들이 많습니다.
보시면 충분히 하실수 있습니다.
기본적인 원리를 보시면요 chk값을 배열로 잡아서 체크한 위치에 od_id값을 가지고 오면 그걸 처리 하는게 개념입니다.
즉 이건 체크가된 부분에 대하여 or_id값을 뽑아와서 출력하면되는겁니다.
결국 while문 장안 안에서 if조건문이 들어가는겁니다.
예로 된부분도 다 그렇게 되어있습니다.

/adm/board_list_update.php

 

여기를 보셔도 됩니다.

비슷한 예제입니다. 다만 여기는 for문장의 loop문입니다. 별반 차이 없습니다.~

일단 비슷하게 지금 span으로 들어가 있는 버튼을 input submit으로 바꿔주고 value를 선택엑셀로 해줬습니다. 그리고 while 아래에 if ($_POST['act_button'] == "선택엑셀")  까진 넣었는데 여기서 뭘 해야하나요?

<?
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=file.xls");
header("Content-Description: PHP4 Generated Data");

include "_common.php";

if($_POST['chk']) {
for ($i=0; $i<count($_POST['chk']); $i++) {

$k    = $_POST['chk'][$i];
$od_id[] = $_POST['od_id'][$k];

}
$od = implode(", ", $od_id);
$where = "WHERE od_id IN($od)";
}
?>
<table border="1">
<tr>
<th>od_id</th>
</tr>
<?
$que = sql_query("SELECT * FROM {$g5['g5_shop_order_table']} $where order by od_id");
while($row = sql_fetch_array($que)) {
if ($_POST['act_button'] == "선택엑셀") {
?>
<tr>
<td style='mso-number-format:\@;'><?=$row['od_id']?></td>
</tr>
<?
}}
?>
</table>

답변을 작성하시기 전에 로그인 해주세요.
전체 281
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT