Witam serdecznie. Czy ktoś mógłby mnie naprowadzić, ewentualnie pomóc mi w takiej kwestii: poniżej mam działający kod, który wyświetla markery z bazy na mapie egmap, który jest powiązany z widgetem CGRidView. Wszystko działa prawie jak należy poza jednym wyjątkiem - gdy nawiguję pomiędzy rekordami używając paginacji, kasując rekordy lub używając wyszukiwarki - to zawartość mapy się nie odświeża. Zawartość mapy jest pobierana prawidłowo tylko, podczas pierwszego otwarcia strony. Gdzieś pewnie brakuje jakiejś funkcji ajaxowej, która nakazałaby mapie, aby pobrała na nowo markery w zależności od tego, co jest wyświetlane w siatce CGridView. Z góry dziękuję za pomoc i pozdrawiam
Oto mój kod:
<?php
Yii::import('ext.gmap.*');
$gMap = new EGMap();
$gMap->zoom = 2;
$mapTypeControlOptions = array(
'position'=> EGMapControlPosition::LEFT_BOTTOM,
'style'=>EGMap::MAPTYPECONTROL_STYLE_DROPDOWN_MENU
);
$gMap->mapTypeControlOptions= $mapTypeControlOptions;
$gMap->setCenter(39.721089311812094, 2.91165944519042);
$dataProvider=$model->search();
$i = 0;
if ( $dataProvider->getData() ) {
foreach ($dataProvider->getData() as $row) {
$i++;
// Create marker
$marker = new EGMapMarker($row['lat'], $row['lng']);
$gMap->addMarker($marker);
}
}
$gMap->renderMap();
//end of egmap
//start search and gridview
Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
$('.search-form').toggle();
return false;
});
$('.search-form form').submit(function(){
$('#mapa-grid').yiiGridView('update', {
data: $(this).serialize()
});
return false;
});
");
echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?>
<div class="search-form" style="display:none">
<?php $this->renderPartial('_search',array(
'model'=>$model,
)); ?>
</div><!-- search-form -->
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'mapa-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'idspecies',
'lat',
'lng',
array(
'class'=>'CButtonColumn',
),
),
)); ?>