为保存在数据库中的各个标记添加注释/留言板

时间:2014-02-14 00:16:12

标签: javascript php database google-maps google-maps-api-3

我正在创建一个Google地图应用程序,允许用户在地图上输入标记,一旦添加了标记,它们就会保存到数据库中。我想要做的是,一旦标记被保存,我希望其他用户能够点击相同的标记,然后在保存的标记下面输入他们自己的评论,同时仍保留以前的评论(而不是直接创建新标记在它的旁边)。这可以像留言簿/页面评论的样式那样完成。

我不介意评论显示在标记的信息窗口内还是显示在页面上的单独元素上,只要显示所选特定标记的注释。

我一直试图弄清楚这几个小时,但在互联网上找不到任何信息,所以如果这是一个愚蠢的问题,我很抱歉。感谢任何帮助,谢谢。

目前,我向数据库提交标记的代码如下所示:

var htmlmsg = "<table>" +
                 "<tr><td>Name:</td> <td><input type='text' id='name'/> </td> </tr>" +
                 "<tr><td>Address:</td> <td><input type='text' id='address'/></td> </tr>" +
                 "<tr><td>Type:</td> <td><select id='type'>" +
                 "<option value='bar' SELECTED>bar</option>" +
                 "<option value='restaurant'>restaurant</option>" +
                 "</select> </td></tr>" +
                 "<tr><td></td><td><input type='button' value='Save & Close' onclick='saveData()'/></td></tr>";

      google.maps.event.addListener(gMap, "click", function(event) {
        marker = new google.maps.Marker({
          position: event.latLng,
          map: gMap
        });
        google.maps.event.addListener(marker, "click", function() {
          infowindowmsg.open(gMap, marker);
        });
    });


    infowindowmsg = new google.maps.InfoWindow({
     content: htmlmsg
    });

...

function saveData() {
      var name = escape(document.getElementById("name").value);
      var address = escape(document.getElementById("address").value);
      var type = document.getElementById("type").value;
      var latlng = marker.getPosition();

      var url = "phpsqlinfo_addrow.php?name=" + name + "&address=" + address +
                "&type=" + type + "&lat=" + latlng.lat() + "&lng=" + latlng.lng();
      downloadUrl(url, function(data, responseCode) {
        if (responseCode == 200 && data.length <= 1) {
          infowindowmsg.close();
          document.getElementById("message").innerHTML = "Location added.";
        }
      }); 
    }

0 个答案:

没有答案