Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从PHP MySQL查询将纬度/经度结果返回到Javascript JSON_Php_Javascript_Json_Google Maps - Fatal编程技术网

无法从PHP MySQL查询将纬度/经度结果返回到Javascript JSON

无法从PHP MySQL查询将纬度/经度结果返回到Javascript JSON,php,javascript,json,google-maps,Php,Javascript,Json,Google Maps,我试图将纬度和经度的数据库值从PHP/MySQL查询返回到Javascript函数,以便填充google maps 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); whil

我试图将纬度和经度的数据库值从PHP/MySQL查询返回到Javascript函数,以便填充google maps 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 '}';    
}
?>
这是我的计算根函数,当我运行程序时,我得到一个错误,说“origin is not defined”,尽管我认为我将其设置为与从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>';

      } 
      }
    });
 }
函数calcRoute(){
var startname=document.getElementById('start').value;
var endname=document.getElementById('end').value;
var-waypts=[];
var checkboxArray=document.getElementById('waypoints');
对于(var i=0;i”;
summaryPanel.innerHTML+='来自'+startname+'';
summaryPanel.innerHTML+='到'+endname+'('+route.legs[i].distance.text+')
'; } } }); }
您正在以字符串形式传递“结果”。您需要传递结果对象,不带引号:

var origin = google.maps.LatLng(result);
请记住,$.getJSON是异步的。您可能需要将gmaps代码的其余部分封装在函数声明中,并在设置origin后在$.getJSON回调中调用该函数。否则,在从服务器获取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>
}
$.getJSON(“phpsearch2.php”,{name:startname},函数(结果){
var origin=google.maps.LatLng(结果);
//既然我们有了原点,就可以初始化其余的
初始(原点);
});
函数初始化(原点){
var end=new google.maps.LatLng('37.738029','-122.499481');
var请求={
来源:来源,,
}

谢谢,这确实是一个问题,在我做出更改后,我仍然看到一个错误,尽管错误:属性值无效:未定义…y)/d);f&&f.io&(qa(k,f.io[0]),Ka(k,f.io[1]);返回{ya:f,W:e,df:g,anchorOffset:k…查看更新后的答案。您需要等待$.getJSON返回,然后再继续。OT:始终使用
json\u encode
在PHP中生成json。查看此答案以了解同步和异步代码之间的区别:.Ajax是异步的。
$.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>
}