Как присвоить значение из php моей переменной скрипта, которая будет использоваться для координат планета googlemap? - PullRequest
0 голосов
/ 16 октября 2018

Я хочу получить вывод моего php и назначить его моей переменной в скрипте.причина в том, что каждый раз, когда я нажимаю кнопку, я хочу перераспределять содержимое моего div id = "map", так как значение координат полета будет изменено. Я пытался сделать что-то вроде

var flightplancoordinates = [<?php 
   echo "{lat: $latitude_data, lng: $longitude_data},";  
 ?>
 ];

, ноэто сделало бы мою карту неизменной и статичной, но я хочу, чтобы она была изменяемой, я знаю, что многое нужно изменить, но у меня нет идеи, с чего начать;ниже приведен мой скрипт внутри «test.php», и он является практически единственным в моем test.php, за исключением обычных.

<div id="map">
   <script>
    function initMap() {
      var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 18,
        center: {lat: 8.264670, lng: 124.263394},
        mapTypeId: 'terrain'


      }
     );

      var flightPlanCoordinates = [
       //where i want to assign the value
      ];
      var flightPath = new google.maps.Polyline({
        path: flightPlanCoordinates,
        geodesic: true,
        strokeColor: '#FF0000',
        strokeOpacity: 1.0,
        strokeWeight: 2
      });

      flightPath.setMap(map);
    }
</script>
</div>

следующее будет примером желаемого php."dbphp.php"

 <?php

$conn=pg_connect("host=localhost dbname=routing user=postgres password=password")
  or die("Can't connect to database".pg_last_error());

  if(isset($_POST['latitude'], $_POST['longitude'])){
     $longitude = $_POST['longitude'];
     $latitude = $_POST['latitude'];
     $result = pg_query($conn, "select * from shortpath($longitude, 
     $latitude)");
     while($row = pg_fetch_assoc($result)){
        echo "{lat: $latitude_data, lng: $longitude_data},";
  }
 }    
?>

ниже приведен пример координат плана полета var со значениями из учебников по API Google.

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}
    ];

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Создайте функцию для кнопки при нажатии и вызовите свой test.php для обновления значения json:

$(function () {
    $('#your_button').on('click', function () {
$.ajax({

        type:'POST'
        url:'test.php',                               //  (or whatever your url is)
        data:{data1:'your_data'},

        success:function(responsedata){
             flightPlanCoordinates = responsedata;
             //Also re initialize your map here
                   var flightPath = new google.maps.Polyline({
               path: flightPlanCoordinates,
              geodesic: true,
              strokeColor: '#FF0000',
              strokeOpacity: 1.0,
              strokeWeight: 2
              });

             flightPath.setMap(map);
        }
     })

}
});

Я не проверял его.Но должно быть что-то похожее.

0 голосов
/ 16 октября 2018

Если вы пытаетесь передать ваши данные из php в javascript при перезагрузке, вы можете использовать json_encode и отобразить его в сценарии, который выполняется перед вашим основным сценарием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...