无法用正确格式的数据填充JSON请求
Cannot populate JSON request with correctly formatted data
我正在尝试用从我的phpsearch.php文件返回的数据填充JSON请求(如图所示)
<?php
include "base.php";
$name = $_GET["name"];
$query = "SELECT lat, lng FROM markers WHERE name = '".$name."'";
$result = mysql_query($query);
$json = array();
while($row = mysql_fetch_array ($result))
{
$bus = array(
'lat' => $row['lat'],
'lng' => $row['lng']
);
array_push($json, $bus);
}
$jsonstring = json_encode($json);
echo $jsonstring;
?>
数据在控制台中以以下格式显示:
[{"lat":"37.730267","lng":"-122.498589"}]
路由计算函数在问题的底部,我以前使用过异步JSON请求,但这导致代码在设置原点值之前执行,现在它正在设置,但看起来不正确
我如何确保我的纬度和经度结果是在正确的JSON格式?目前JSON请求是这样的:
Request URL:https://maps.googleapis.com/maps/api/js/DirectionsService.Route?4b0&5m4&1m3&1m2&1dNaN&2dNaN&5m4&1m3&1m2&1d37.738029&2d-122.499481&6e1&8b1&12sen-GB&100b0&102b0&callback=_xdc_._1rqnjk&token=80599
路由计算码:
function calcRoute() {
var startname = document.getElementById('start').value;
var endname = document.getElementById('end').value;
var waypts = [];
var checkboxArray = document.getElementById('waypoints');
for (var i = 0; i < checkboxArray.length; i++) {
if (checkboxArray.options[i].selected == true) {
waypts.push({
location:checkboxArray[i].value,
stopover:true});
}
}
$.ajax({
url:'phpsearch2.php',
dataType:'html',
data:{name:startname},
async:false,
success:function (result)
{
console.log(result)
origin = new google.maps.LatLng(result[0].lat, result[0].lng);
}});
var end = new google.maps.LatLng('37.738029', '-122.499481');
var request = {
origin: origin,
destination: end,
waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.DirectionsTravelMode.WALKING
};
directionsService.route(request, function(response, status) {
document.write('<b>'+ origin +'</b>');
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var route = response.routes[0];
var summaryPanel = document.getElementById('directions_panel');
summaryPanel.innerHTML = '';
// For each route, display summary information.
for (var i = 0; i < route.legs.length; i++) {
var routeSegment = i + 1;
summaryPanel.innerHTML += '<b>Time for a Walkabout </b><br>';
summaryPanel.innerHTML += '<b>From ' + startname + ' </b>';
summaryPanel.innerHTML += '<b>to ' + endname + '('+ route.legs[i].distance.text +')</b><br>';
}
}
});
}
LatLng构造函数接受两个数字作为参数,您传递给它一个JSON对象。获取纬度和经度属性并直接传递数字,如下所示:
function (result){
origin = new google.maps.LatLng(result[0].latitude, result[0].longitude);
}
我猜在特定的属性上,你可能想要console.log(result)
看到确切的对象结构。
相关文章:
- 用我的json数据填充JQuery DataTable
- 单击鼠标,用MySQL数据填充html表单输入字段
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- 用 MySql 数据填充 JavaScript 数组
- 有没有一种方法可以用包含ENTER键换行符的SQL数据填充文本区域表单
- 将数据填充到TextArea和jquery对话框中
- 如何从LiveCycle中的下拉列表将一个子窗体中的数据填充到另一个子窗体的文本字段
- 我想用所选项目的数据填充我的编辑表单
- 使用jQuery用data-*数据填充表单文本输入
- 使用ng repeat用数组中的数据填充表行
- 无法将我的 JavaScript 数据填充为 HTML
- 如何使用随机数据填充 XML 文件
- 在 JavaScript 中使用 MySQL 数据库中的数据填充下拉列表
- 我正在用来自选择的数据填充文本框,它可以工作,但是
- 如何在 jQuery 中用 JSON 数据填充下拉列表作为 ajax 响应
- 用 JSON 数据填充 HTML
- 使用来自另一个表单的数据填充表单
- 如何从 html 表数据填充 javascript 模型
- 如何访问对象的键值?希望从对象数据填充表
- 骨干 js 并使用 fetch() 用数据填充模型