2010-12-27 7 views
2

HTML 페이지를 생성하는 PHP 페이지가 있습니다. 페이지 하단의 '제출'버튼을 클릭하면 표의 데이터가 Table2CSV (link here)라는 jquery 스크립트로 전송되어 데이터를 가져 와서 CSV 내보내기를 위해 다른 PHP 스크립트에 제출할 수 있습니다. 를 통해 (내가하고 싶은 무엇javascript 및 php csv 내보내기 스크립트를 실행하는 가장 좋은 방법

<form action="getCSV.php" method ="post" > 
<input type="hidden" name="csv_text" id="csv_text"> 
<input type="submit" value="Get CSV File" 
     onclick="getCSVData()" 
</form> 


<script type="text/javascript"> 

function getCSVData(){ 
var csv_value=$('#example2').table2CSV({delivery:'value'}); 
$("#csv_text").val(csv_value); 
} 
</script> 

혹시 화면에 출력 할 HTML 테이블을하지 않고 CSV 스크립트를 생성 할 수 있습니다 :

궁극적으로, 작업의 모든 여기에서 일어난다 다른 페이지에서 링크 클릭).

궁극적으로 위의 javascript 함수를 변경하여 페이지로드시 getCSVdata를 호출 한 다음 getcsv.php를 실행해야하지만 정확하게 JS에 익숙하지 않은 방법을 수행 할 필요가 없다고 생각합니다.

제안 사항?

+1

테이블 데이터가 이미있는 서버로 전송하는 이유는 무엇입니까? –

+0

귀하의 질문/요지를 잘 모르겠습니다. html 테이블은 브라우저 내에서 볼 수있는 위치에서 생성됩니다. 누군가 해당 데이터를 내보내려는 경우 머리글 정보를 수정하고 다운로드 할 새 컨텐트 유형으로 내보낼 다른 호출을해야합니다. – JM4

+0

lol은 타사 스크립트입니까? 어서, 게으르지 마라. 자기 자신을 만들어라. 그것은 코드의 5 라인 –

답변

1

table2CSV 함수를 보지 않고도 CSV 데이터를 가져 오기 위해 HTML 테이블 요소가 필요하다고 가정하고 싶습니다. 즉,이 스크립트를 사용해야하는 경우 HTML 테이블의 코드가 생성되어야합니다.

가장 쉬운 해결 방법은 display : hidden set을 사용하여 div 안에 테이블을 만드는 것입니다. 이렇게하면 table2CSV 함수는 여전히 테이블 내부의 데이터에 액세스 할 수 있지만 사용자는 페이지에서 데이터를 볼 수 없습니다.

외부에서는 물론 항상 HTML 테이블에서 CSV 파일로 반환되는 데이터를 구문 분석 할 수있는 자체 서버 측 스크립트를 작성할 수 있습니다.

여기에서 살펴볼 문제는 데이터가 서버에 있고 브라우저로 전송 된 다음 JS에 의해 스크랩되어 서버로 전송되어 다시 구문 분석됩니다. 서버가 데이터 분석을 위해 클라이언트에 의존하지 않았거나 클라이언트가 자체적으로 데이터를 구문 분석 할 수없는 경우 상황이 더욱 간단해질 것입니다. 두 옵션 모두 가능하지만 직접 CSV 파일 작성 스크립트를 작성해야합니다.

편집 : 위의 의견을 읽으십시오. 처음부터 CSV 파일을 사용할 수있게하려면 DOM을 초기화 한 후에 getCSVData()를 호출해야합니다. 그냥 당신이 (비동기로드) 이미지에서 데이터를 끌어되지 않습니다 당신이 할 수 가정 : 페이지를 표시 할 준비가로에 그것을 사용할 수 있도록 즉시 당신의 CSV 스크립트를 실행됩니다

$(document).ready(function() { getCSVData(); }); 

사용자를 추가 클릭없이.

+0

좋은 답변 - thanks Xenethyl – JM4

+0

@ JM4 환영합니다! 희망이 도움이됩니다! – Xenethyl

관련 문제