Javascript 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

我用的是Smarty,我想用谷歌地图,在上面动态地放置标记,我得到了以下信息

{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
    );