【问题标题】:map page becomes blank after inserting php code插入php代码后地图页面变为空白
【发布时间】:2015-06-17 11:23:22
【问题描述】:

将 php 代码插入 infowindow 内容后,我的 gmap 页面变为空白。

google.maps.event.addListener(noi, 'mouseover', function() {
  var infowindow = new google.maps.InfoWindow({
    content: '<?php 
        if ($count==0){
        echo "No Open Tickets";
        }
    else{
        echo "<table>";
        foreach ($NOIcompliancearray as $SLA_Compliance=>$count) {
            $Npath = $Nimages[$SLA_Compliance];
            echo "<tr>";
            echo "<td><a href='city.php?city=Noida&compliance=".$SLA_Compliance."'><img src='IndiaImages/".$Npath."' title='".$SLA_Compliance."' ></td>";
            echo "<td>".$count."</td>";
            echo "</tr>";
            }
        echo "</table>";        
    }
  ?>'
    size: new google.maps.Size(100,100),
  });
google.maps.event.addListener(noi, 'mouseover', function() {
infowindow.open(map,noi);
setTimeout(function() { infowindow.close(map, noi) }, 5000);
});

如果我用一些静态内容替换 php 代码,它可以正常工作。此外,当我尝试打开网页源代码时,它会给出我想在信息窗口中看到的结果。我不确定我在哪里犯了错误。

网页源代码的输出: 内容:

'&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='city.php?city=Noida&amp;compliance=A'&gt;&lt;img src='IndiaImages/Circle_Red.gif' title='A' &gt;&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='city.php?city=Noida&amp;compliance=C'&gt;&lt;img src='IndiaImages/Circle_Yellow.gif' title='C' &gt;&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;Noida'

请帮助我理解错误并缓解问题。

【问题讨论】:

  • PHP 在服务器端运行。信息窗口代码在客户端中运行。在您的页面上查看源代码。
  • 查看源代码,输出如下: content: '
    3
    10
    Noida'。而不是 php,我应该编写 javascript 来显示数据吗?请提出建议。
  • @moskito-x :进行了修改,但系统抛出了“解析错误:语法错误,意外的'IndiaImages'(T_STRING),期待','或';'在第 xx 行的 C:\xampp\htdocs\map\gm4v2.php 中”。相同的代码在 css 层中没有任何问题。
  • @TrinathKanagala:我的错误,我错过了。我删除我的评论。但是你得到了什么:echo "&lt;td&gt;&lt;a href=\"city.php?city=Noida&amp;compliance=\"".$SLA_Compliance."\"&gt;&lt;img src=\"IndiaImages/".$Npath."\" title=\"".$SLA_Compliance."\" &gt;&lt;/td&gt;";
  • @moskito-x :很抱歉,您对代码进行了一些修改。没注意到。现在它以应有的方式显示。非常感谢。另外,我想了解您为什么在两者之间添加斜杠。能否请您解释或引导我到正确的渠道,以便我更好地理解?

标签: php google-maps-api-3 maps infowindow


【解决方案1】:

看函数

google.maps.event.addListener(noi, 'mouseover', function() {
  var infowindow = new google.maps.InfoWindow({
    content: '...'
    size: new google.maps.Size(100,100),
  });

用php你得到

google.maps.event.addListener(noi, 'mouseover', function() {
  var infowindow = new google.maps.InfoWindow({
    content: '<table>
            <tr>
            <td><a href='
   // 'city.php?city=......' is after content : string ending sign `'` will be ignored by function !
    size: new google.maps.Size(100,100),
  });

php 生成的第一个' 将被解释为字符串的结尾 其余的将在 html 源代码中。你可以看到它,但被函数忽略了。

所以不要在那种代码中使用'

echo "<td><a href='city.php?city=Noida&compliance=".$SLA_Compliance."'>

转义 " 符号

echo "<td><a href=\"city.php?city=Noida&ompliance=\"".$SLA_Compliance."\">"

转义"look here

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 2018-02-26
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多