Javascript smarty和谷歌地图
我用的是Smarty,我想用谷歌地图,在上面动态地放置标记,我得到了以下信息Javascript smarty和谷歌地图,javascript,foreach,smarty,Javascript,Foreach,Smarty,我用的是Smarty,我想用谷歌地图,在上面动态地放置标记,我得到了以下信息 {literal} <script type="text/javascript"> //<![CDATA[ if (GBrowserIsCompatible()) { // ==== first part of the select box === var select_html = '<select onChange="handleSelected
{literal}
<script type="text/javascript">
//<![CDATA[
if (GBrowserIsCompatible()) {
// ==== first part of the select box ===
var select_html = '<select onChange="handleSelected(this)">' +
'<option selected> - Select a location - <\/option>';
// =====================================
var gmarkers = [];
var htmls = [];
var i = 0;
var rozmiar = new google.maps.Size(12,20);
var punkt_startowy = new google.maps.Point(0,0);
var punkt_zaczepienia = new google.maps.Point(0,0);
var map;
var n=0;
var side_bar_html = "";
var icon = new GIcon();
icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon.iconSize = new GSize(12, 20);
icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);
var ikona1 = new GIcon(icon,"http://labs.google.com/ridefinder/images/mm_20_blue.png");
// A function to create the marker and set up the event window
function createMarker(point,name,html,ikon) {
var options = {
draggable: true,
title: name,
icon: ikon,
clickable:true}
var marker = new GMarker(point,options);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
gmarkers[i] = marker;
htmls[i] = html;
// ======= Add the entry to the select box =====
select_html += '<option> ' + name + '<\/option>';
// ==========================================================
i++;
map.addOverlay(marker);
return marker;
}
// ======= This function handles selections from the select box ====
// === If the dummy entry is selected, the info window is closed ==
function handleSelected(opt) {
var i = opt.selectedIndex - 1;
if (i > -1) {
GEvent.trigger(gmarkers[i],"click");
}
else {
map.closeInfoWindow();
}
}
var wspolrzedne = new google.maps.LatLng(51.730430542940184,19.62158203125);
// create the map
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(51.730430542940184,19.62158203125), 6);
{/literal}
{foreach from=$znacznik key=key item=item}
{foreach from=$item key=k item=v}
//here
createMarker(new GLatLng(51.730430542940184,19.62158203125),'{if $k == 'nazwa_obiektu'}{$v}{/if}','<div class="dymek"><div style="border-bottom:2px solid red;margin-bottom:6px;text-align:left;"><a href="http://nocleg-i.pl/{if $k == 'id'}{$v}{/if}/google_maps/" style="color:#2A86C7;font-size:13px;font-family:Verdana;font-weight:bold;">{if $k == 'nazwa_obiektu'}{$v}{/if}</a></div></strong><div style="float:left;width:125px;"><strong><a href="http://nocleg-i.pl/{if $k == 'id'}{$v}{/if}/google_maps/"><img src="http://nocleg-i.pl/uzytkownicy/miroslawa/mini_0.jpg" alt="" border="0" /></a></div>Miasto: {if $k == 'miasto'}{$v}{/if}</div></div><div style="clear:both;"></div>',ikona1);
//here
{/foreach}
{/foreach}
{literal}
}else {
alert("Sorry, the Google Maps API is not compatible with this browser");
}
// This Javascript is based on code provided by the
// Community Church Javascript Team
// http://www.bisphamchurch.org.uk/
// http://econym.org.uk/gmap/
//]]>
</script>
{/literal}
{literal}
// -1) {
触发器(gmarkers[i],“click”);
}
否则{
map.closeInfoWindow();
}
}
var wspolrzedne=新的google.maps.LatLng(51.730430542940184,19.62158203125);
//创建地图
VarMap=新的GMap2(document.getElementById(“map”);
addControl(新的GlargeMappControl());
addControl(新的GMapTypeControl());
赛特中心地图(新格拉特隆(51.730430542940184,19.62158203125),6);
{/literal}
{foreach from=$znacznik key=key item=item}
{foreach from=$item key=k item=v}
//这里
createMarker(新GLatLng(51.730430542940184,19.62158203125),{if$k='nazwa_obiektu'}{$v}{/if}',Miasto:{if$k='Miasto'}{$v}{/if}',ikona1);
//这里
{/foreach}
{/foreach}
{literal}
}否则{
警报(“抱歉,谷歌地图API与此浏览器不兼容”);
}
//此Javascript基于
//社区教会Javascript团队
// http://www.bisphamchurch.org.uk/
// http://econym.org.uk/gmap/
//]]>
{/literal}
标记之间(//此处)
这些代码就是问题所在
createMarker(new GLatLng(51.730430542940184,19.62158203125),'{if $k == 'nazwa_obiektu'}{$v}{/if}','<div class="dymek"><div style="border-bottom:2px solid red;margin-bottom:6px;text-align:left;"><a href="http://nocleg-i.pl/{if $k == 'id'}{$v}{/if}/google_maps/" style="color:#2A86C7;font-size:13px;font-family:Verdana;font-weight:bold;">{if $k == 'nazwa_obiektu'}{$v}{/if}</a></div></strong><div style="float:left;width:125px;"><strong><a href="http://nocleg-i.pl/{if $k == 'id'}{$v}{/if}/google_maps/"><img src="http://nocleg-i.pl/uzytkownicy/miroslawa/mini_0.jpg" alt="" border="0" /></a></div>Miasto: {if $k == 'miasto'}{$v}{/if}</div></div><div style="clear:both;"></div>',ikona1);
createMarker(新GLatLng(51.730430542940184,19.62158203125),{if$k='nazwa_obiektu'}{$v}{/if}',Miasto:{if$k='Miasto}{$v}{/if}',ikona1);
它不显示变量,比如{if$k='nazwa_obiektu'}{$v}{/if}什么也不显示,当我在其他地方为每个函数显示它的变量时,但是如果我手工键入它,它会显示它
有人知道如何解决它吗?您的问题是:
"{if $k == 'nazwa_obiektu'}{$v}{/if}"
//^----------use double quotes--------^
您需要转义您的报价,或使用不同的报价:
'{if $k == 'nazwa_obiektu'...}'
应该是
'{if $k == \'nazwa_obiektu\'...}'
或
检查撇号的结构。试试这个或查看一下,为javascript预先设置值,避免撇号混淆
createMarker(
new GLatLng(51.730430542940184,19.62158203125),
'{if $k == "nazwa_obiektu"}{$v}{/if}',
'<div class="dymek"><div style="border-bottom:2px solid red;margin-bottom:6px;text-align:left;"><a href=\"http://nocleg-i.pl/{if $k == "id"}{$v}{/if}/google_maps/\" style=\"color:#2A86C7;font-size:13px;font-family:Verdana;font-weight:bold;\">{if $k == "nazwa_obiektu"}{$v}{/if}</a></div></strong><div style=\"float:left;width:125px;\"><strong><a href=\"http://nocleg-i.pl/{if $k == "id"}{$v}{/if}/google_maps/\"><img src=\"http://nocleg-i.pl/uzytkownicy/miroslawa/mini_0.jpg\" alt=\"\" border=\"0\" /></a></div>Miasto: {if $k == "miasto"}{$v}{/if}</div></div><div style=\"clear:both;\"></div>',
ikona1
);
createMarker(
新玻璃(51.730430542940184,19.62158203125),
{if$k==“nazwa_obiektu”}{$v}{/if},
“Miasto:{if$k==“Miasto”}{$v}{/if}”,
ikona1
);
或使用{assign}
{if $k == "nazwa_obiektu"}
{assign var="nazwa_obiektu" value=$v}
{/if}
{if $k == "id"}
{assign var="id" value=$v}
{/if}
{if $k == "miasto"}
{assign var="miasto" value=$v}
{/if}
createMarker(
new GLatLng(51.730430542940184,19.62158203125),
'{$nazwa_obiektu|default}',
'<div class="dymek"><div style="border-bottom:2px solid red;margin-bottom:6px;text-align:left;"><a href=\"http://nocleg-i.pl/{$id|default}/google_maps/\" style=\"color:#2A86C7;font-size:13px;font-family:Verdana;font-weight:bold;\">{$nazwa_obiektu|default}</a></div></strong><div style=\"float:left;width:125px;\"><strong><a href=\"http://nocleg-i.pl/{$id|default}/google_maps/\"><img src=\"http://nocleg-i.pl/uzytkownicy/miroslawa/mini_0.jpg\" alt=\"\" border=\"0\" /></a></div>Miasto: {$miasto|default}</div></div><div style=\"clear:both;\"></div>',
ikona1
);
{if$k==“nazwa_obiektu”}
{assign var=“nazwa_obiektu”值=$v}
{/if}
{如果$k==“id”}
{assign var=“id”value=$v}
{/if}
{如果$k==“miasto”}
{assign var=“miasto”value=$v}
{/if}
创建标记(
新玻璃(51.730430542940184,19.62158203125),
“{$nazwa_obiektu | default}”,
“Miasto:{$Miasto|default}”,
ikona1
);
@ariel使用带有语法突出显示的IDE,这将使这个问题在将来更容易解决。
{if $k == "nazwa_obiektu"}
{assign var="nazwa_obiektu" value=$v}
{/if}
{if $k == "id"}
{assign var="id" value=$v}
{/if}
{if $k == "miasto"}
{assign var="miasto" value=$v}
{/if}
createMarker(
new GLatLng(51.730430542940184,19.62158203125),
'{$nazwa_obiektu|default}',
'<div class="dymek"><div style="border-bottom:2px solid red;margin-bottom:6px;text-align:left;"><a href=\"http://nocleg-i.pl/{$id|default}/google_maps/\" style=\"color:#2A86C7;font-size:13px;font-family:Verdana;font-weight:bold;\">{$nazwa_obiektu|default}</a></div></strong><div style=\"float:left;width:125px;\"><strong><a href=\"http://nocleg-i.pl/{$id|default}/google_maps/\"><img src=\"http://nocleg-i.pl/uzytkownicy/miroslawa/mini_0.jpg\" alt=\"\" border=\"0\" /></a></div>Miasto: {$miasto|default}</div></div><div style=\"clear:both;\"></div>',
ikona1
);