使用MySQL的数据,我用含有HTML,PHP和JavaScript和MySQL中命名的数据包含按日期排序GPS信息表中的PHP文件的工作。我正在使用以下代码,因此用户可以在表单中键入日期。与谷歌地图API
<form method="POST">
<div class="col-sm-12">
<p>
<label for="route_date_ids">Insert date</label>
<input name="route_date_id"></input>
</p>
</div>
<div class="col-sm-12">
<p>
<input type="submit" value="View route"/>
</p>
</div>
</form>
<?php if (isset($_POST['route_date_id'])) : ?>
<?php
$query = "SELECT * FROM data WHERE measured_at LIKE ". $_POST['route_date_id'];
$result = mysqli_query($conn, $query);
所以一旦用户输入一个日期,然后按下按钮,在服务器端,我得到其日期与用户键入的字符开头的数据。我现在的目标是将这些信息(包含纬度和经度数据的$ result)传递给下面的函数。
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
center: {lat: 0, lng: -180},
mapTypeId: 'terrain'
});
var flightPlanCoordinates = [
{lat: 37.772, lng: -122.214},
{lat: 21.291, lng: -157.821},
{lat: -18.142, lng: 178.431},
{lat: -27.467, lng: 153.027}
];
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
所以当页面重新加载提交后,地图显示的是用户输入的日期对应的坐标。
我解决不了这个最后一个问题。任何帮助,将不胜感激。
你的代码是易受[** SQL注入**](https://en.wikipedia.org/wiki/SQL_injection)攻击。你应该使用[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)或[** PDO **](https://secure.php.net/ manual/en/pdo.prepared-statements.php)准备带有绑定参数的语句,如[**这篇文章**]所述(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql步喷射功能于PHP)。 –
当您从查询的检查结果,创建一个JavaScript变量,从initmap功能或另一个读它。如果您需要动态更新,使用jQuery请求数据,将其作为一个JSON给客户端,并解析/过程中它使用JavaScript。 –
@Sakura木之本我怎样才能创建查询包含结果的JavaScript变量和initMap看了吗?对不起,我有点新手到Javascript和PHP! – Eduardo