PHP里面的PHP内部的Javascript里面的PHP

时间:2014-11-23 00:18:14

标签: javascript php html

我在while循环中有这个......

echo 'var contentString = '<div id="content" >
                           <div id="bodyContent">
                           <p>' + $row[name]+ '</p> 
                           </p>
                           </div>
                           </div>';';

但是我得到了意想不到的idenitfier = id

我正在使用此while循环从数据库加载标记并将它们添加到谷歌地图。

<?php
mysql_data_seek($query, 0);
while ($row = mysql_fetch_array($query)) {
    $lat2 = $row['lat'];
    $lon2 = $row['lng'];
    echo 'var icon = customIcons[ "' . $row['type'] . '"];';
    echo 'var miLatLng = new google.maps.LatLng(' . $lat2 . ',' . $lon2 . ');';
    echo 'bounds.extend(miLatLng);';
    echo 'var url = "markerpage.php?id=" + id;';
    echo "
  var contentString = &quot;
    <div id='content'>
      <div id='bodyContent'>
        <p>" . $row['name'] . "</p>
      </div>
    </div>&quot;
";
    echo 'var marker = new google.maps.Marker({';
    echo 'position: miLatLng,';
    echo 'map: map,';
    echo 'icon: icon.icon,';
    echo 'url: url';
    echo '});';
}
?>

的JavaScript ....

此函数打开包含contentString内容

的信息窗口
 function bindInfoWindow(marker, map, infoWindow, contentString) {
                                infoWindow = new google.maps.InfoWindow({
                                    content: contentString,
                                    maxWidth: 100,
                                    maxHeight: 100
                                });
                                google.maps.event.addListener(marker, 'mouseover', function () {
                                    infoWindow.setContent(contentString);
                                    infoWindow.open(map, marker);
                                });
                                google.maps.event.addListener(marker, 'click', function () {
                                    infoWindow.setContent(contentString);
                                    infoWindow.close(map, marker);
                                });
                            }

3 个答案:

答案 0 :(得分:1)

认为你在寻找这样的东西:

echo "var contentString = \"<div id=\"content\">
                            <div id=\"bodyContent\">
                                <p>" . $row['name'] . "</p> 
                            </div>
                       </div>\";";

也许你读到这个很好:

http://php.net/manual/en/language.operators.string.php

答案 1 :(得分:0)

只是逃避Javascript中使用的单引号

echo 'var contentString = \'<div id="content" >
                           <div id="bodyContent">
                           <p>' . $row['name'] . '</p>
                           </div>
                           </div>\';';

答案 2 :(得分:0)

我有几种方法可以在PHP中使用引号内的引号。

在这里,您的浏览器将解释&#34;作为引用,并将与JavaScript一起使用:

echo "
  var contentString = &quot;
    <div id='content'>
      <div id='bodyContent'>
        <p>" . $row['name'] . "</p>
      </div>
    </div>&quot;
";

或者您可以使用\"告诉PHP忽略引用。

echo "
  var contentString = \"
    <div id='content'>
      <div id='bodyContent'>
        <p>" . $row['name'] . "</p>
      </div>
    </div>\"
";