我需要将函数中的java脚本变量的值分配给同一文件中的php变量中

I need to assign a value of java-script variable inside in function into php variable in a same file

本文关键字:变量 分配 php 文件 脚本 函数 java      更新时间:2023-09-26

我需要将computeTotalDistance()函数中的总值获取到php变量中。我尝试了很多方法,但毫无意义。

            var rendererOptions = {
                draggable: true
            };
            var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
            ;
            var directionsService = new google.maps.DirectionsService();
            var map;
            var Srilanka = new google.maps.LatLng(6.9344, 79.8428);
            function initialize() {
                var mapOptions = {
                    zoom: 8,
                    center: Srilanka
                };
                map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
                directionsDisplay.setMap(map);
                google.maps.event.addListener(directionsDisplay, 'directions_changed', function () {
                    computeTotalDistance(directionsDisplay.getDirections());
                });
                calcRoute();
            }
            function calcRoute() {
                var locations = ['Galle', 'Kandy', 'minneriya wildlife park', 'Horton Plains'];
                var waypoints = locations.map(function(loc) {
                    return { 'location': loc };
                });
                var request = {
                    origin: 'Colombo',
                    destination: 'Colombo',
                    waypoints: waypoints,
                    travelMode: google.maps.TravelMode.DRIVING
                };

                directionsService.route(request, function(response, status) {
                    if (status == google.maps.DirectionsStatus.OK) {
                        directionsDisplay.setDirections(response);
                    }
                });
            }
            function computeTotalDistance(result) {
                var total = 0;
                var myroute = result.routes[0];
                for (var i = 0; i < myroute.legs.length; i++) {
                    total += myroute.legs[i].distance.value;
                }
                total = total / 1000.0;
                document.getElementById('total').innerHTML = total + ' km';
            }
            google.maps.event.addDomListener(window, 'load', initialize);
        </script>

我使用了以下一个,但我对如何使用它捕获返回值感到困惑。

 <?php
      $tot = echo "<script>document.writeln();</script>";
  ?> 

我如何将此总距离值分配给$tot值。

你对两种语言的存在感到困惑。你忘记了你的Javascript将在客户端的浏览器中运行。PHP 将在服务器上运行。将 JavaScript 值获取到服务器的唯一方法是使用 HTTP 表单中的隐藏字段或通过 ajax 调用将其 HTTP POST/GET 发送到服务器。

我能想到的唯一方法是使用 JavaScript 将带有参数的 URL 发回,例如:

http://www.example.com/index.php?id=1

。通过使用这样的东西,你可以在JavaScript中应用它:

window.location.href="index.php?value=1";

然后在 PHP 代码中使用 $_GET

$somevar = $_GET["value"]; //puts the uid varialbe into $somevar

我们在这里展示的 JavaScript 是客户端的......

由于PHP在服务器端级别,我们必须通过HTTP请求来获取它。 HTTP 请求基本上是客户端和服务器之间的通信。

JavaScript 在其中实现了一个名为 Ajax 的小型库,它代表异步 JavaScript 和 XML(XML 在这里并不重要)。

Ajax 允许我们在脚本中异步执行 HTTP 请求,并使用服务器具有的响应。

为了使事情在语法上更容易理解,我将使用jQuery,它提供了一个易于使用的Ajax库。

有了这个,你可以构造一个请求,也可以相当容易地处理响应...... 让我们试试这个,例如:

$.ajax({
  "url": "index.php",
  "type": "POST",
  "data": {"testing":true},
  "success": function(response){
    console.log(response);
  }
});

这提供了,我们获取我们的index.php文件,并说我们有以下代码:

<?php
  if(isset($_POST["testing"])) {
    echo $_POST["testing"] ? "Hello" : "Goodbye";    
  }
?>

现在回到 Ajax 函数.... 在"success"处理程序中,我们告诉它记录任何响应。 由于我们的 PHP 旨在根据我们发送的"testing"数据的值说"Hello""Goodbye",这将提供一个非常直接的响应...... 在我们的例子中,它会记录"Hello".

这显示了如何通过 Ajax 在客户端和服务器之间创建关系,从而使我们能够更轻松地来回交换数据。