Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图标记框中的内容_Javascript_Mysql_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图标记框中的内容

Javascript 谷歌地图标记框中的内容,javascript,mysql,google-maps,google-maps-api-3,Javascript,Mysql,Google Maps,Google Maps Api 3,我从MySQL表中获取坐标、名称和ID,但为什么每个标记中都有相同的文本和相同的链接 为什么文本没有不同 它只显示最后一个ID,但应该在数据库中的每个元素后面添加一个其他标记 标记在正确的位置,内容在源代码中也正确,但不在标记处为什么 请帮忙 <script type="text/javascript"> function initialize() { var mapOptions = { center: new google.maps

我从MySQL表中获取坐标、名称和ID,但为什么每个标记中都有相同的文本和相同的链接

为什么文本没有不同

它只显示最后一个ID,但应该在数据库中的每个元素后面添加一个其他标记

标记在正确的位置,内容在源代码中也正确,但不在标记处为什么

请帮忙

<script type="text/javascript">
    function initialize() {
        var mapOptions = {
            center: new google.maps.LatLng(51.124213, 10.60936),
            zoom: 5,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new
        google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);
        var contentString;
        var elementeInArray = 0;
        var LatLngList = new Array;

        <? php
        $i = 1;

        foreach($FertigID as $ID) {

            $result = mysql_query("SELECT * FROM Daten_CH WHERE Objektnummer = ".$ID.
                "");

            while ($Ergebnisse = mysql_fetch_array($result)) {
                // Werden alle ergebnisse (ID´s) in einen Array geschriebenn 

                echo $$Ergebnisse["Objektnummer"];

                if (isset($Ergebnisse["Gis_y"]) && $Ergebnisse["Gis_y"] != "" &&
                    $Ergebnisse["Gis_y"] != " ") {

                    echo $i; ?>

                    // MARKER TEXT 

                    contentString = '<?php echo $i; ?> </br><?php echo 
                               $Ergebnisse["Objektname"]; ?> 
                                 </br><a href="Change.php?ID=<?php echo $ID; ?>">
                             <input type="button" value="BEARBEITEN"></button></a>';



                    var Position = new google.maps.LatLng( <? php echo $Ergebnisse["Gis_y"]; ?> , <? php echo $Ergebnisse["Gis_x"]; ?> );

                    var infowindow = new google.maps.InfoWindow({
                        content: contentString
                    });

                    var marker <? php echo $i; ?> = new google.maps.Marker({
                        position: Position,
                        map: map,
                        title: '<?php echo $Ergebnisse["AA_Objektname"]; ?>'
                    });

                    google.maps.event.addListener(marker <? php echo $i; ?> , 'click', function () {

                        infowindow.open(map, marker <? php echo $i; ?> );
                    });

                    LatLngList[elementeInArray] = new google.maps.LatLng( <? php echo $Ergebnisse["Gis_y"]; ?> , <? php echo $Ergebnisse["Gis_x"]; ?> );
                    elementeInArray++;
                    <? php
                }
            }

            $i++;
        }

        ?>

        //  Create a new viewpoint bound
        var bounds = new google.maps.LatLngBounds();
        //  Go through each...
        for (var i = 0, LtLgLen = LatLngList.length; i < LtLgLen; i++) {
            //  And increase the bounds to take this point
            bounds.extend(LatLngList[i]);
        }
        //  Fit these bounds to the map
        map.fitBounds(bounds);

        var opt = {
            minZoom: 1,
            maxZoom: 12
        };
        map.setOptions(opt);
    }

    google.maps.event.addDomListener(window, 'load', initialize);
</script>

因为您应该将contentString分配给标记,并使用每个标记分配的内容更新infowindow。现在,唯一可用的contentString是上次创建的。此外,您真的不必创建多个编号标记。您只需要一个标记引用

var infowindow = new google.maps.InfoWindow();

var marker = new google.maps.Marker({
    position: Position,
    map: map,
    content: contenString, // <-- assign content to the marker itself
    title: '<?php echo $Ergebnisse["AA_Objektname"]; ?>'
});

google.maps.event.addListener(marker, 'click', function () {
    infoWindow.setContent(this.content);
    infowindow.open(map, this);
});
这样就行了