无法从PHP MySQL查询返回纬度/经度结果到Javascript JSON
Unable to return latitude/longitude result to Javascript JSON from PHP MySQL query
我试图从PHP/MySQL查询到我的Javascript函数返回纬度和经度的数据库值,以便填充谷歌地图JSON请求。
我的PHP/MySQL查询脚本,phpsearch2.php是:<?php
include "base.php";
$name = $_GET["name"];
$query = "SELECT lat, lng FROM markers WHERE name = '".$name."'";
$result = mysql_query($query);
while($row = mysql_fetch_array ($result))
{
echo '{';
echo '"latitude":"'.$row['lat'].'",';
echo '"longitude":"'.$row['lng'].'",';
echo '}';
}
?>
返回如下格式的值:
{"latitude":"37.730267","longitude":"-122.498589",}
这是我的计算根函数,当我运行程序时,我得到一个错误说'原点未定义'即使我认为我将其设置为具有与JSON请求返回结果相同的值到phpsearch,我只是不知道错误在哪里。
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});
}
}
$.getJSON("phpsearch2.php", {name : startname}, function (result) {
origin = google.maps.LatLng('result');
});
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>'+ start + end + '</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>';
}
}
});
}
您正在将'result'作为字符串传入。您需要传递结果对象,不带引号:
var origin = google.maps.LatLng(result);
请记住$。getJSON是异步的。您可能需要将gmaps代码的其余部分包装在函数声明中,并在$。在 origin之后设置getJSON callback 。否则,您仍然试图在从服务器获取它之前使用origin。
类似:
$.getJSON("phpsearch2.php", {name : startname}, function (result) {
var origin = google.maps.LatLng(result);
// Now that we have our origin, we can initialize the rest
init(origin);
});
function init(origin) {
var end = new google.maps.LatLng('37.738029', '-122.499481');
var request = {
origin: origin,
<snip>
}
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- “可绘制地图”设置地图选项“纬度-经度”
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 如何用javascript获取谷歌地图的经度和纬度
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- 按接近度排序坐标(纬度和经度)的结果
- 从google map v3方向api的结果中获取纬度和经度
- 无法从PHP MySQL查询返回纬度/经度结果到Javascript JSON