php 버튼 클릭 시 변수값 가지고 페이지 이동 채택완료
안녕하세요. 제가 현재 PHP 페이지에서 버튼을 클릭 하면 변수값을 들고 페이지를 이동하면서 들고온 변수값을 이용해 엑셀을 다운로드 받는 코드를 작성중입니다.
코드는 다음과 같습니다.
index_day.php
</p>
<p><?php
if(!empty($_POST)){
$output = '';</p>
<p> $DB_IP = "";
$DB_ID = "";
$DB_PWD = "";
$DB_NAME = "";
$DB_ConnectInfo = array("UID"=>$DB_ID, "PWD"=>$DB_PWD, "Database"=>$DB_NAME, "CharacterSet" => "UTF-8");</p>
<p> date_default_timezone_set('Asia/Seoul');
$connect = sqlsrv_connect($DB_IP, $DB_ConnectInfo);</p>
<p> $StartDate = $_POST['startDate'];
$EndDate = $_POST['endDate'];</p>
<p> $time = " 23:59:59:999";
$query = "SELECT U.UserId, H.UserName, H.CommuteType, CommuteDateTime, UserPosition, UserResponsibilities, UserDepartment
FROM tblCommuteHistory H JOIN tblUser U ON H.UserId = U.UserId
WHERE CommuteDateTime BETWEEN '".$StartDate."' AND '".$EndDate.$time."'
ORDER BY CommuteDateTime DESC";</p>
<p>
$text = "해당 기간 내역 엑셀로 변환";
if (sqlsrv_query($connect, $query)) {
$output .= '<button type="button" data-toggle="modal" onclick="document.location.href= `index_day_excel.php`" class="btn btn-link">'.$text.'</button>';
$result = sqlsrv_query($connect, $query);</p>
<p> </p>
<p> // 하단에는 다른 코드 존재
}
echo $output;
}</p>
<p>
DB연결과 잘 됐고, 이전 페이지에서 AJAX로 startDate값과 endDate값을 index_day.php로 넘겨서 받은 $StartDate, $EndDate값도 잘 들어온걸 확인했습니다.
if문 내 button클릭 시 index_day_excel.php로 넘어가게끔 onclick을 넣어줬는데,
혹시 넘어갈 때 $StartDate값과 $EndDate값을 들고 넘어가는 방법이 있을까요?
(index_day_excel.php은 url로 변수를 들고 넘어가기만 하면 바로 엑셀 파일이 다운로드 되도록 하는 코드가 있습니다.)
감사합니다.
답변 3개
1. 아래처럼 버튼 부분을 바꿉니다.
</p>
<p>$output .= '<button type="button" data-toggle="modal" onclick="document.location.href= `index_day_excel.php?StartDate=".$StartDate."&EndDate=".$EndDate."`" class="btn btn-link">'.$text.'</button>';</p>
<p>
2. index_day_excel.php 의 가장 상단에
</p>
<p>$StartDate = $_GET['StartDate'];
$EndDate = $_GET['EndDate'];</p>
<p>
3. 만일 index_day_excel.php 에 $StartDate 와 $EndDate 의 디폴트값이 있다면...
</p>
<p>$StartDate = $_GET['StartDate'] ? $_GET['StartDate'] : $StartDate;
$EndDate = $_GET['EndDate'] ? $_GET['EndDate'] : $EndDate;</p>
<p>
이건 겟변수로 넘기는 방식인데 포스트방식으로 넘기려면
index_day_excel.php 를 액션문서로 처리하면서 양쪽 문서에 폼전송 로직을 첨가해 주어야 합니다.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
쌍따옴표 외따옴표 문제는 늘 잔실수가 많이 나와서...
직접 코드 결과물 보면서 하는 것이 가장 좋은데...
겟변수의 경우 아래처럼 한번 해 보세요.
따로 링크부분만 변수로 만들었습니다.
</p>
<p>&link = "index_day_excel.php?StartDate=".$StartDate."&EndDate=".$EndDate;
$output .= "<button type=button data-toggle=modal onclick=location.href='".$link."' class='btn btn-link'>".$text."</button>";</p>
<p>
답변에 대한 댓글 1개
도와주셔서 너무 감사합니다. 알려주신 GET방식으로도 하면서 많이 연습하겠습니다!
댓글을 작성하려면 로그인이 필요합니다.
그누보드 내에서 작업하시는거면 저렇게 디비를 연결하기보다 common을 include 해오시면 기존에 그누에서 쓰던 방식으로 디비작업이 가능하십니다.
onclick="document.location.href= `index_day_excel.php?StartData={$StartData}`"
이런식으로 get으로 넘기실 수 있을거에용
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
처음 코드를 아래처럼 사용하시구요.
[code]
$output .= "<button type=button data-toggle=modal onclick=location.href='index_day_excel.php?StartDate=".$StartDate."&EndDate=".$EndDate." class='btn btn-link'>".$text."</button>";
[/code]
----------
포스트 방식으로 하시려면 전체코드를 아래처럼 해야겠지요.
[code]
$output .= "<form action=index_day_excel.php method=post><input type=hidden name=start_date value='".$StartDate."'><input type=hidden name=end_date value='".$EndDate."'><button data-toggle=modal class='btn btn-link'>".$text."</button></form>";
[/code]
[code]
$StartDate = $_POST['start_date'] ? $_POST['start_date'] : $StartDate;
$EndDate = $_POST['end_date'] ? $_POST['end_date'] : $EndDate;
[/code]