2015-02-17 5 views
1

Я пытаюсь показать данные от посетителей внутри карты, созданной с использованием jvectormap-плагина.Проблема jVectorMap при загрузке данных ajax

Это сводит меня с ума, я не могу загрузить данные через ajax, если я поместил данные вручную, это сработает.

До сих пор у меня есть это:

map.php

$datos = array(); 
$link->set_charset("utf8"); 
$sql = $link->query("SELECT SUM(ID) as visitors, state FROM visitors WHERE state != '' GROUP BY state"); 
while($row = $sql->fetch_row()){ 
    $ss = $link->query("SELECT * FROM states WHERE state = '".$row[1]."'"); 
    $rr = $ss->fetch_row(); 
    $datos[] = array("ccode" => $rr[2], "visits" => $row[0]); 
} 
$data = array("countries" => $datos); 
echo json_encode($data,JSON_NUMERIC_CHECK); 

Это возвращает следующие данные:

{"countries":[{"ccode":"VE-A","visits":81},{"ccode":"VE-L","visits":24}]} 

Теперь функция загрузки карты:

function cargaMapa(){ 
     //jvectormap data 
    $.post("ajax/map.php",{},function(mapa){ 
     var dataC = eval(mapa); 
     //var dataC = {"countries":[{"ccode":"VE-A","visits":81},{"ccode":"VE-L","visits":24}]}; 
     var countryData = []; 
     //for each country, set the code and value 
     $.each(dataC.countries, function() { 
      countryData[this.ccode] = this.visits; 
      console.log("Estado: "+this.ccode+" Visitas: "+this.visits); 
     }); 
     //World map by jvectormap 
     $('#world-map').vectorMap({ 
      map: 've_mill_en', 
      backgroundColor: "#fff", 
      regionStyle: { 
       initial: { 
        fill: '#e4e4e4', 
        "fill-opacity": 1, 
        stroke: 'none', 
        "stroke-width": 0, 
        "stroke-opacity": 1 
       } 
      }, 
      series: { 
       regions: [{ 
         values: countryData, 
         scale: ["#3c8dbc", "#2D79A6"], //['#3E5E6B', '#A6BAC2'], 
         normalizeFunction: 'polynomial' 
        }] 
      }, 
      onRegionLabelShow: function(e, el, code) { 
       //search through dataC to find the selected country by it's code 
       var country = $.grep(dataC.countries, function(obj, index) { 
        return obj.ccode == code; 
       })[0]; //snag the first one 
       //only if selected country was found in dataC 
       if (country != undefined) { 
        el.html(el.html() + ': ' + country.ccode + country.visits + ' visitas'); 
       } 
      } 
     }); 
    }); 
} 

Как вы можете видеть в t он функционирует, у меня есть var dataC, если я загружаю туда массив, исходящий из map.php, он дает мне Uncaught SyntaxError: Unexpected token :, но если скопировать и вставить результат map.php в var dataC, он работает очень хорошо.

Как я могу это решить?

Я признателен за любую помощь

Благодаря

ответ

0

Я понял это, только изменил $.post для $.getJSON и волшебство началось

Смежные вопросы