2013-07-22 2 views
0

stackoverflow question의 대답에 이어 다음 코드를 실행하려고합니다. 그러나 myfunction은 하나의 Google 시각화 이벤트 만 사용합니다. 그럼 다음 코드가 유효합니까? 또는 하나의 함수에서 여러 statechange Google 시각화 이벤트를 처리하는 방법은 무엇입니까?statechange를 기반으로 한 javascript 함수 실행

var categoryPicker1, categoryPicker2; 
function drawVisualization() { 
    // etc. 
    categoryPicker1 = // etc... 

    categoryPicker2 = // etc... 

    // Register to hear state changes. 
    google.visualization.events.addListener(categoryPicker1, 'statechange', myfunction); 
    google.visualization.events.addListener(categoryPicker2, 'statechange', myfunction); 

    // etc. 
} 

function myfunction() { 
    var whereClauses = []; 
if (categorypicker1) { 
    whereClauses.push("something1 = '" + document.getElementsByClassName('goog-inline-block goog-menu-button-caption')[0].innerHTML + "'") 
} 
if (categorypicker2) { 
    whereClauses.push("something2 = '" + document.getElementsByClassName('goog-inline-block goog-menu-button-caption')[1].innerHTML + "'") 
} 
whereClause = whereClauses.join(" AND "); 

// do something.... 
} 

답변

0

질문에서 분명히 드러나지 만, 나는 CategoryPicker의 선택한 항목에서 데이터베이스에 대한 SQL 쿼리를 작성한다고 가정합니다. 매우 불리한 (SQL 클라이언트 측 구축 및 서버로 보내는) 아주 나쁜/위험한 일이지만, 이것은 CategoryPicker에서 selectedItem을 가져 와서 AND로 결합하는 것이 가능해야합니다. 좋아요 :

values = categoryPicker1.getState().selectedValues; 
values = values.concat(categoryPicker2.getState().selectedValues); 
var args = values.map(function(_) { return "'" + _ + "'"; }); 
console.log(args.join(" AND ")); 

나는 당신이었습니다. 내가 인수를 서버에 전달하고, 적절하게 필터링 한 후에 거기에 다시 매핑합니다. 다시 이것은 매우 위험합니다.

+0

정보를 제공해 주셔서 감사합니다. – mpsbhat

관련 문제