2015-01-11 2 views
0

Я пытаюсь создать карту с amCharts, используя jquery ajax, но он не работает с ajax.amCharts js не работает с вызовом ajax?

здесь мой код Ajax:

$('button#btn').click(function(){ 
     $('div#ozellikli').html('<center><img src="assets/img/loading.gif" width="200" height="200"/></center>') 
     $.ajax({ 
      type:'post', 
      url:'ozellikliAjax.php', 
      data:$('form#oz').serialize(), 
      success:function(msg){ 
       $('div#ozellikli').html(msg); 
      } 
     }); 
    }); 

Вот мой Ajax код PHP:

<?php 

    include 'config.php'; 

    $html=""; 

    $yil=$_POST['yil']; 
    $tur=$_POST['tur']; 

    ///HARITAYI CIZ 
    $sql="SELECT id,il,COUNT(kurum) AS kurum_Say FROM ozellikli GROUP BY id,il ORDER BY kurum_Say"; 


    $result=$baglanti->query($sql); 
    $mapChart=""; 

    while ($query=$result->fetch(PDO::FETCH_ASSOC)) { 
    $mapChart.=' { title: "'.$query['il'].':'.$query['kurum_Say'].'", id: "TR'.$query['id'].'",value:'.$query['kurum_Say'].', selectable: true },'; 
    } 



    $html.='<script type="text/javascript"> 
AmCharts.ready(function() { 

    var map; 
     // *** CREATE MAP *********************************************************** 
    function createMap(){ 
    map = new AmCharts.AmMap(); 
    map.pathToImages = "http://www.ammap.com/lib/images/"; 
    //map.panEventsEnabled = true; // this line enables pinch-zooming and dragging on touch devices 
    var dataProvider = { 
     mapVar: AmCharts.maps.turkeyLow 
    }; 

    map.areasSettings = { 
     unlistedAreasColor: "#43B1A9", 
     rollOverOutlineColor: "#FFFFFF" 
      }; 

    map.colorSteps=5; 

    map.valueLegend={ 
     left: 10, 
     bottom:0, 
     minValue: "En Az", 
     maxValue: "En Çok" 
    };  

    dataProvider.areas = ['.$mapChart.']; 

    map.dataProvider = dataProvider; 

    map.addListener(\'clickMapObject\', function (event) { 
     // deselect the area by assigning all of the dataProvider as selected object 
     map.selectedObject = map.dataProvider; 

     // toggle showAsSelected 
     event.mapObject.showAsSelected = !event.mapObject.showAsSelected; 

     // bring it to an appropriate color 
     map.returnInitialColor(event.mapObject); 


     var states = []; 
     for (var i in map.dataProvider.areas) { 
      var area = map.dataProvider.areas[i]; 
      if (area.showAsSelected) { 
       states.push(area.title); 
      } 
     }   
    }); 


    map.write("mapdiv"); 

    } 

    createMap(); 
}); 
</script>'; 


echo $html; 
    ?> 

при запуске кода Ajax, сценарий загрузки с помощью AJAX правильно, но его не графиков на карту.

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

благодаря

ответ

0

Если впрыснуть к ресурсам таким же образом, вам нужно установить вручную это готовое состояние в противном случае он не будет работать. AmCharts прислушивается к событию, нагруженному домом, чтобы установить следующее свойство:

AmCharts.isReady = true; 
Смежные вопросы