【问题标题】:How do I pass Google maps lat and lng values and save to MySQL database?如何传递谷歌地图 lat 和 lng 值并保存到 MySQL 数据库?
【发布时间】:2015-06-02 17:50:30
【问题描述】:

我正在编写一个 Google 地图应用程序,用户可以通过在 InfoWindow 中填写表单然后单击 submit 按钮将数据保存到 MySQL 数据库来单击他们想要保存标记的位置。

我在这里的意思的图片:

我不知道如何从event.latLng 中检索latlng 值,然后将它们用作我的addLocation 表单操作的一部分。

包含addLocation 表单动作的JavaScript:

function placeMarker(location) {

var latLng = event.latLng;
// don't know how to retrieve lat & lng from latLng?

var contentString = '<form action="addlocation" method="POST">' +
    '<div id="addMarkerInfoWindow">' +
    '<b>Name:</b>&nbsp;<input type="text" name="name"><br>' +
    '<b>Facilities:</b>&nbsp;<input type="text" name="facilities"><br>' +
    '<b>Opening Hours:</b>&nbsp;<input type="text" name="opening"><br>' +
    '<b>Notes:</b>&nbsp;<input type="text" name="notes"><br></div>' +
    '<br><br><input type="submit" value="Submit">&nbsp;' + 
    '<input type="button" value="Cancel" /></form>';

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

var marker = new google.maps.Marker({
    position: location,
    map: map
});

infowindow.open(map,marker);

}

这是我的 php 代码:

注意:我是php新手)

<?php

require("db_info.php");

// Opens a connection to a MySQL server
$connection = mysqli_connect('localhost', $username);
if (!$connection) {
    die('Not connected : ' . mysqli_error());
}

// Set the active MySQL database
$db_selected = mysqli_select_db($connection, $database);
if (!$db_selected) {
    die('Can\'t use db : ' . mysqli_error());
}

################ Save location #################

if($_POST) //run only if there's a post data
{
    // make sure ajax request
    $xhr = $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'; 
    if (!$xhr) { 
        header('HTTP/1.1 500 Error: Request must come from Ajax!'); 
        exit(); 
    }

    // inserting data order
    $order = "INSERT INTO markers (name, facilities, opening, lat, lng, notes) 
        VALUES ('$name', '$facilities', $opening, '$lat', '$lng', '$notes')";

    // declare in the order variable
    $result = mysql_query($order);  //order executes

    if($result) {
       echo("<br>Input data is succeed");
    } else {
       echo("<br>Input data is fail");
    }
}

?>

【问题讨论】:

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


【解决方案1】:

您可以更新您的内容字符串以使用 latlng 的隐藏字段

var contentString = '<form action="addlocation" method="POST">' +
    '<input type="hidden" name="lat" value="' + location.lat() + '" />' +
    '<input type="hidden" name="lng" value="' + location.lng() + '" />' +
    '<div id="addMarkerInfoWindow">' +
    '<b>Name:</b>&nbsp;<input type="text" name="name"><br>' +
    '<b>Facilities:</b>&nbsp;<input type="text" name="facilities"><br>' +
    '<b>Opening Hours:</b>&nbsp;<input type="text" name="opening"><br>' +
    '<b>Notes:</b>&nbsp;<input type="text" name="notes"><br></div>' +
    '<br><br><input type="submit" value="Submit">&nbsp;' + 
    '<input type="button" value="Cancel" /></form>';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多