2013-06-08 1 views
2

우리 고객 중 한 명은 페이지/스크린 제목과 모든 컨트롤 (텍스트 상자, 체크 상자, 라디오 단추, 일반 단추, 링크, 이미지 등)을 동적으로 캡처해야한다는 새로운 요구 사항이 있습니다. 메뉴/메뉴 항목)을 사용자가 상호 작용하는 페이지에 표시 한 다음 Excel 파일로 푸시합니다.페이지 제목, 컨트롤 레이블을 캡쳐하는 일반적인 방법

고객이 페이지 A를 탐색/열기하고 이름 = John 텍스트 상자에 값을 설정하고 checkboxChBox/라디오 버튼 Rbutton을 활성화 한 다음 마지막으로 저장/제출 버튼을 클릭하면 다음 출력이 예상됩니다. 사용자 작업 및 결과는 Excel 파일의 첫 번째 2 열입니다.

페이지의 사용자 상호 작용을 캡처하는 일반적인 방법을 구현할 수 있는지 궁금합니다.

+0

안녕 안토니. 웹 응용 프로그램이 고객에게 전달되었지만 고객이 웹 응용 프로그램에서 위의 2 열을 사용하여 이러한 Excel 파일을 생성하는 기능을 원했습니다. – Steve

+0

고객이 묻는 것이 다소 가능하지만 PITA 구현. 클라이언트 측의 모든 사용자 동작과 서버 측의 일부 동작을 추적해야하며 데이터베이스에이 정보를 모두 저장하고 Excel 형식의 보고서를 제공해야합니다. –

+0

테이블에있는 레코드의 csv/excel 파일을 다운로드 할 수 있기를 원하십니까? –

답변

0

그냥 생각 : 모든 이벤트 (예 : jquery)를들을 수 있고 각 '흥미로운'이벤트 (필터해야 ... ...)에 대한 ajax 요청을 게시하고 데이터베이스에 저장하고 csv 또는 excel 형식으로 '내보내기'기능을 추가하십시오.

아마 약간의 성능 문제, 그것은

... 페이지, 이벤트 및 사용자의 양에 필터가 좋은에 하산 이크발 아닉에, 덕분에 클래스 이름을 사용하는 아이디어를 따라 달라집니다.

+0

안녕하세요 티에리, 고마워요. 좀 더 자세히 설명해 주시겠습니까? 나는 이것을 과거에하지 않았다. 그건 그렇고, 고객은 출력물이 데이터베이스에 들어가는 것을 원하지 않으며 거기에서부터 수출로 뛰어납니다. 그가 원하는 것은 클라이언트 시스템에서 직접 Excel 파일로 추적하고 내보낼 수있는 기능/기능을 켜는 스위치 종류를 만드는 것입니다. – Steve

+0

클라이언트 컴퓨터에서 파일을 만들 수 없습니다. 보안상의 이유로 파일 시스템에 액세스 할 수 없습니다. – Thierry

+0

클라이언트 컴퓨터라고하면 유감 스럽습니다. 브라우저를 사용하여 응용 프로그램과 상호 작용하는 컴퓨터를 말합니다. 죄송합니다. 그것은 고객의 기계가 아닙니다. – Steve

0

자바 스크립트는 하드 드라이브에 파일을 쓰는 권한이 없습니다. 그러나 데이터를 캡처하고 모델을 만든 다음 ajax 호출을 사용하여 서버에 저장할 수 있습니다.

몇 가지 아이디어 :

  1. 응용 프로그램 뷰를 통해 렌더링 레이아웃 또는 마스터 페이지를 사용합니다.
  2. 모든 페이지 레이블, 버튼, 체크 박스 및 정보를 저장해야하는 항목에 동일한 클래스 이름을 지정하십시오.
  3. 마스터/레이아웃 페이지에서 일부 jquery 마법을 사용하여 해당 요소의 값을 가져오고 배열을 만듭니다.
  4. 서버로 아약스 호출을 통해 해당 배열을 보냅니다.

이제 jquery를 사용하여 요소 값을 얻는 방법에 대한 많은 예제를 얻을 수 있습니다. 나는 너에게 모든 것을주는 것을 막고있다. 희망이 도움이 ... : D

// 편집 : 스티브가 요청한대로 내 대답을 연장하려고합니다.

<form action="someAction" id="myForm"> 
Name: <input type="text" class="Name"> 
Checkbox: <input type="checkbox" class="ChBox"/>Click this box 
RButton: <input class="Rbutton" type="radio" /> 
Submit: <input type="submit" class="submit"/> 
</form> 

이제 일부 JQuery와 :

$(function() { 
    $(".submit").click(function(){ 
var dataToSend = new Object(); 
dataToSend.pageUrl = window.location.pathname + " is displayed"; 
if ($(".Name").val().length > 0) { 
dataToSend.Name = "Field Name is set successfully"; 
} 
else { 
dataToSend.Name = "Field Name is empty"; 
} 
if($(".ChBox").is(':checked')){dataToSend.ChBox = "ChBox is enabled successfully";} 
else{dataToSend.ChBox = "ChBox is not enabled";} 
if($(".Rbutton").is(':checked')){dataToSend.Rbutton = "Rbutton is enabled successfully";} 
else{dataToSend.Rbutton = "Rbutton is not checked";} 
dataToSend.Submit = $("#myForm").attr['action'] + " is displayed"; 
}); 


//now send it to the server via ajax 

$.ajax({ 
type: "POST", 
url: "your server action url that would make excel file with these data", 
data: dataToSend, 
contentType: "application/json; charset=utf-8", 
dataType: "json", 
success: function(msg) { 
//do as you wish 
} 
}); 

    }); 
+0

안녕하세요, 하산 감사합니다. 좀 더 자세히 설명해 주시겠습니까? 나는 이것을 과거에하지 않았다. 그런데 고객은 출력이 데이터베이스에 들어가는 것을 원하지 않으며 거기에서부터 수출로 뛰어납니다. 그가 원하는 것은 클라이언트 시스템에서 직접 Excel 파일로 추적하고 내보낼 수있는 기능/기능을 켜는 스위치 종류를 만드는 것입니다. – Steve

관련 문제