2012-05-10 1 views
0

지도. 문제는 IF ... ELSE 문입니다. 또는 약간의 구문 오류. 도와주세요!깨진 코드 - 퓨전 테이블 내가 필터 (텍스트 기반 검색)를 추가 할 퓨전 TablesLayer 마법사 2.0을 사용 ... 내가 왜 모르겠지만지도 캔버스가 화면에 표시되지 않습니다 을

<!DOCTYPE html> 
<html> 
<head> 
<style> 
    #map-canvas { width:500px; height:400px; } 
</style> 
<script type="text/javascript" src="http://maps.google.com/maps/apijs?sensor=false">  </script> 
<script type="text/javascript"> 
    var map; 
    var layer10; 

    function initialize() { 
    map = new google.maps.Map(document.getElementById('map-canvas'), { 
    center: new google.maps.LatLng(-30.08870187538118, -51.16813659667969), 
    zoom: 11, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
    layer10 = new google.maps.FusionTablesLayer({ 
    query: { 
    select: "'ENDERECO_GOOGLE'", 
    from: 3767057 
    }, 
    map: map 
    }); 
    } 


//the function to activate filters 
    function changeMap10() { 
    var searchString = document.getElementById('search-string-10').value.replace(/'/g, "\\'"); 
    var filter = document.getElementById('filter').value.replace(/'/g, "\\'"); 
    if (filter == "TURNO"){ 
    layer10.setOptions({ 
     query: { 
     select: "'ENDERECO_GOOGLE'", 
     from: 3767057, 
     } 
    }); 
    } 
    layer10.setOptions({ 
     query: { 
     select: "'ENDERECO_GOOGLE'", 
     from: 3767057, 
     where: "'TURNO'" = '" + searchString + "'" 
     } 
    }); 
    else if (filter == "DIA_SEMANA"){ 
    layer10.setOptions({ 
     query: { 
     select: "'ENDERECO_GOOGLE'", 
     from: 3767057, 
     } 
    }); 
    } 
    layer10.setOptions({ 
     query: { 
     from: 3767057, 
     where: "'DIA_SEMANA'" = '" + searchString + "'" 
     }   
    }); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
</head> 
<body> 
    <div id="map-canvas"></div> 
    <div style="margin-top: 10px;"> 
    <label>Choose data!</label><input type="text" id="search-string-10"> 
    <input type="button" onclick="changeMap10()" value="Search"> 
</div> 
</body> 
</html> 

답변

0

if/else 문이 조금 섞여 있습니다. 문장 사이에 코드가 있습니다. 올바른 코드를 이해했다면 search-string-10 입력을 기반으로 쿼리의 where 절을 변경하려고합니다. 내가 your example on jsFiddle을 넣고 필터 선택 박스를 추가하거나 contains ignoring case 대신 =를 사용하여 같은 일부 수정 한

function changeMap10() { 
    var searchString = document.getElementById('search-string-10').value.replace(/'/g, "\\'"); 
    var filter = document.getElementById('filter').value.replace(/'/g, "\\'"); 
    var whereClause = ''; 
    if (filter == "TURNO") { 
     whereClause = "'TURNO' = '" + searchString + "'"; 
    } 
    else if (filter == "DIA_SEMANA") { 
     whereClause = "'DIA_SEMANA' = '" + searchString + "'"; 
    } 
    layer10.setOptions({ 
     query: { 
      select: "'ENDERECO_GOOGLE'", 
      from: 3767057, 
      where: whereClause 
     } 
    }); 
}​ 

: 난 당신의 코드를 단순화.

+0

고마워요, 스테판! –