백그라운드 - excel 다운로드 파일 업로드 및 페이지 나누기

3142 단어
많은 사이트의 백엔드 페이지는 통계 데이터를 보기 위해 excel 목록을 가져오고 내보내야 하며, 데이터의 양이 비교적 많을 때도 종종 페이지를 나누는 방식을 채택한다.
사실 전단 개발자에게 excel 목록의 가져오기와 내보내기는 매우 간단하다.
검색 조건이 존재하는 상황에서 바로 내가 검색한 일련의 데이터를 내보내야 한다. 전방에서 검색한 필드를 백엔드에 전달하고 백엔드에 알려야 한다. 이것은 검색 조건을 표시하는 것이 아니라 이런 내용을 내보내야 한다. 그러면 우리는 어떤 표지를 통해 백엔드에 알려야 한다.
<div>
   <input value=" " type="submit" class="btn search-btn" onclick="document.forms[0].csv.value='0'" >
 <input value=" " type="submit" class="btn search-btn" onclick="document.forms[0].csv.value='1'">
   <input type="hidden" name="csv" value="0">
</div>

위의 코드는 제가 폼을 제출하는 단추입니다. 숨겨진name = "csv"의 input를 통해 검색 단추와 목록 내보내기 단추에 각각 다른 값을 부여합니다. 따라서 백엔드에서 제 csv가 0이면 관련 검색 데이터를 되돌려 주십시오. 백엔드에서 제 csv가 1이면 백엔드에서 방향을 바꾸어 csv 파일을 되돌려 주십시오.전단은 이 단계까지만 쓰면 되고, 나머지는 모두 백엔드에서 하면 된다.
그 목록 가져오기는 사실 매우 간단합니다. input 탭에는 type="file"이 있습니다. 이것은 파일을 업로드하는 것입니다. 속성enctype의 값은 multipart/form-data이어야 합니다. CI 프레임워크를 사용하면 봉인된 함수form_open_multipart();
그러나 앞부분에서 고려해야 할 점은 우리가 통상적으로 그 스타일을 바꿀 수 없기 때문에 이렇게 쓸 수 있다는 것이다.
<?php echo form_open_multipart($action = 'admin/member/upload', array('class'=>'other-button1'));?>
        <input type="text" id="choose">
        <a href="javascript:;" class="file clearfix" id="c-file"> 
                 <input type="file" name="excel-file"  id="excel-file" onchange="file(this.value)" />
         </a>
        <input type="submit" value=" " class="btn upload" />
 <form>

저는 CI 함수를 사용했습니다. 아래에서 볼 수 있듯이 저는 input 라벨을 추가했고 a라벨을 추가해서 input [type='file']의 라벨을 포함했습니다. 저는 type='file'의 input 라벨을 투명하게 설정하여 a라벨에 스타일을 설정했습니다. 그러나 주의해야 할 것은 input의positon입니다.나는 파일 경로 (표면적인 파일 경로) 를 가져와서 input [type="text"] 의 탭에 값을 부여함으로써 사람들이 자신이 선택한 파일이 무엇인지 알게 되었다.물론 이곳도 마찬가지로 표를 제출하고 후속적인 일은 여전히 백엔드 처리이다.
다운로드 파일을 여기까지 올리면 끝이에요. 이렇게 간단해요. 그런데 혹시 AJAX로 쓸 필요가 없거나 저는 당분간 탐구하지 않았어요.만약 후속 업무에서 내가 다시 보충할 수 있다면
다음은 매우 간단한 기능인 페이지 나누기를 다시 한 번 이야기합시다.페이지를 나누는 것은 전단에 있어서 더 이상 일반적이지 않을 것이다. 그러나 우리의 페이지는 가짜 페이지와 진짜 페이지가 있다. 가짜 페이지는 데이터를 모두 불러온 다음에 페이지를 나누는 것이다. 주로 사용자가 볼 때 편리하고 페이지의 미관을 위해서이다. 그러나 이렇게 하면 페이지의 성능이 향상되지 않을 것이다.진분 페이지는 한 페이지 번호를 선택할 때마다 이 페이지 번호에 대응하는 데이터만 불러옵니다.일반적으로 AJAX를 사용합니다.
그러나 CI 프레임워크는 페이지를 나누는 기능을 가지고 있기 때문에 여기는 페이지를 백그라운드에 맡기고 앞부분은 디스플레이만 책임진다.예:
 <li><?php if(isset($pager)){ 
                      if (count($pager)!==0) {
                        echo $pager;
                      }else{
                        echo '1';
                      }
                    };?>
</li>

그러나 이렇게 하면 사실 매번 페이지 번호를 누르면 페이지를 한 번 새로 고쳐야 하기 때문에 사용자 체험이 매우 좋지 않다.
비록 나는 실제적으로 AJAX의 페이지를 나누어 본 적이 없지만 사용자가 페이지 번호를 클릭할 때마다 AJAX를 통해 페이지 번호를 백엔드에 전달하고 백엔드에서 이 페이지의 데이터를 백엔드에 되돌려주는 것이라고 생각한다. 그러나 한 가지 고려해야 할 것은 바로 전단 페이지 번호의 변화이다. 여기는 아마도 전단에서 js로 동적 감량을 하는 것일 것이다.

좋은 웹페이지 즐겨찾기