2013-08-07 4 views
0

나는 C1, C2, C3, CX라고 표시된 X 개의 열이있는 형식을 가지고 있습니다. 또한 "평균"열과 "대상"열이 있습니다. "평균"열은 C1 - CX 열의 각 행 평균을 찾습니다. 사용자가 양식을 작성하는 동안 "평균"열이 동적으로 변경 될 수 있습니까? 그렇다면 어떻게?PHP/MYSQL 각 행을 평균화합니다.

그럴 수 없다면 편집 된 C1-CX 값을 사용하여 양식을 제출할 때 "평균"열의 값을 어떻게 업데이트합니까?

평균을 처리하는 방법에 대한 도움말을 찾고 있습니다. 이미 MYSQL 데이터베이스에 저장되는 미리 정의 된 필드가있는 C1-CX 컬럼을 사용하고 있습니다.

+0

예. –

+0

1. 데이터 정규화 – Strawberry

+0

확실히 가능합니다. JQuery 또는 Dojo를 시작으로 HTTP 요청을 만드는 것으로 시작하는 AJAX를 확인해 볼 수 있습니다. – hd1

답변

3

CX 양식 필드 값이 변경되면 (예 : 사용자가 값을 변경 한 경우) 트리거 한 이벤트 처리기를 추가 한 다음 평균을 다시 계산하여 평균 열에 표시합니다.

다음과 같은 아마 뭔가, 가정 당신의 CX 양식 입력입니다 :

document.getElementById("C1").addEventListener("input", function(){ 
    // Any time the user changes a value in form 'C1', 
    // this function will be called so you can re-calculate 
    // a new average and stuff... 
}); 
0

그들 모두에게 자바 스크립트와 jQuery로 다음 특정 클래스 (예 : "CX") 및 제공 : http://jsfiddle.net/yw3Hy/4/

$(document).ready(function() { 
    $(".cx").change(function() { 
     var count = 0; 
     var sum = 0; 
     $(".cx").each(function() { 
      count++ 
      sum = parseFloat(sum) + parseFloat($(this).val()); 
     }); 
     var avg = sum/count; 
     alert(avg); 
    }); 
}); 
0

레코드를 업데이트 할 때 mysql 트리거를 사용하여 Average 필드를 자동으로 업데이트하십시오.

실행 데이터베이스에이 트리거 (예를 들어 3 CX 필드) :

DELIMITER $$ 
CREATE TRIGGER `trigger_name` BEFORE UPDATE ON `table_name` 
    FOR EACH ROW BEGIN 
     SET NEW.Average = (NEW.C1 + NEW.C2 + NEW.C3)/3; 
    END; 
$$ 
DELIMITER ; 

또한 여기 MySQL의에 대한 소개는 아마 유용 트리거입니다 : 자바 스크립트와 http://net.tutsplus.com/tutorials/databases/introduction-to-mysql-triggers/

관련 문제