Показать сообщение отдельно
  #1 (permalink)  
Старый 02.09.2013, 12:20
Новичок на форуме
Отправить личное сообщение для emulexx Посмотреть профиль Найти все сообщения от emulexx
 
Регистрация: 02.09.2013
Сообщений: 5

Виджет 2gis для сайта
Добрый день, форумчане!
Помогите встроить виджет карт 2gis на сайт.

У меня есть 3 файла index.html, script.js и noscript.php (+ библиотека jquery).

Вот содержание файла index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<script type="text/javascript" src="jquery-1.9.0.min.js"></script>
	<script type="text/javascript" src="script.js"></script>
</head>  
<body>
<select name="city" id="myid">
	<option value="selected"></option>
	<option value="1">Moscow</option>
	<option value="2">Spb</option>
</select>
<div id="content"></div>
</body>  
</html>


Вот содержимое script.js

function changeData(data) {
	$(data + "<script src='http://mini.api.2gis.ru/js/ver_698e450/loader.js'></script>").appendTo($("#content"));
}

$(document).ready(function() {
	$("#myid").bind("change", function() {
	
		var myvar = $("#myid").val();

		if (myvar=="selected"){
			$("#content").empty();
		}
		
		else if (myvar=="1"){
			$("#content").empty();
			$.get("noscript.php", {city: myvar}, changeData);
			alert("Вы выбрали город Москва");
			new DG.Widget.Components.Loader({wid: '45269095', params: {"projectSelector":{"id":32,"code":"moscow","name":"Москва","centroid":"POINT(37.62017 55.753466)"},"search":{"rubrics":{"list":[]},"_searchFirmBasePoint":{}},"customBalloon":{},"Map":{"zoom":10,"lon":37.62017,"lat":55.753466},"resize":{"w":570,"h":400}}});
		}
		
		else if (myvar=="2"){
			$("#content").empty();
			$.get("noscript.php", {city: myvar}, changeData);
			alert("Вы выбрали город Санкт-Петербург");
			new DG.Widget.Components.Loader({wid: 'a2e0fbaf', params: {"projectSelector":{"id":38,"code":"spb","name":"Санкт-Петербург","centroid":"POINT(30.283631 59.937577)"},"search":{"rubrics":{"list":[]},"_searchFirmBasePoint":{}},"customBalloon":{},"Map":{"zoom":10,"lon":30.283631,"lat":59.937577},"resize":{"w":570,"h":400}}});
		}
	});
});


Вот noscript.php

<?php
	if ($_GET['city']==1) echo "<noscript id='dg-widget-minigis-place-45269095' style='color:#c00;font-size:16px;font-weight:bold;'>Код для вставки виджета на сайт</noscript>";
	elseif ($_GET['city']==2) echo "<noscript id='dg-widget-minigis-place-a2e0fbaf' style='color:#c00;font-size:16px;font-weight:bold;'>Код для вставки виджета на сайт</noscript>";
?>


Идея такая: При выборе из списка Moscow или Spb в div с id = "content" будет подгружаться карта Москвы или Санкт-Петербурга без перезагрузки страницы. Сейчас всё работает в firefox, если стоит alert, если его убрать, то работать скрипт отказывается. А в других браузерах хоть с alert, хоть без него не работает.

Работает следующий код во всех браузерах, если без выпадающего списка взять один город:

<html>
<head>
</head>
<body>
<div id="content">
<noscript id="dg-widget-minigis-place-45269095" style="color:#c00;font-size:16px;font-weight:bold;">
    Код для вставки виджета на сайт    
</noscript>
<script src="http://mini.api.2gis.ru/js/ver_698e450/loader.js"></script>
<script type="text/javascript">new DG.Widget.Components.Loader({wid: '45269095', params: {"projectSelector":{"id":32,"code":"moscow","name":"Москва","centroid":"POINT(37.62017 55.753466)"},"search":{"rubrics":{"list":[]},"_searchFirmBasePoint":{}},"customBalloon":{},"Map":{"zoom":10,"lon":37.62017,"lat":55.753466},"resize":{"w":570,"h":400}}});</script>
</div>
</body>
</html>
Вложения:
Тип файла: zip 2gis.zip (33.8 Кб, 1 просмотров)
Ответить с цитированием