【问题标题】:How to pass div id value to PHP variable?如何将 div id 值传递给 PHP 变量?
【发布时间】:2019-10-22 01:48:46
【问题描述】:

我正在使用自动填写表格来查找城市名称的“lat”和“lng”,而且效果很好。我在 div id="lat" 和 div id="lng" 中得到了正确的值,但我想在 php 变量中使用这些值作为 $latitude="lat" 和 $longitude="lng" 以在 php 脚本中使用它们需要 $latitude 和 $longitude 吗? 我一直在尝试这里介绍的许多解决方案,但我的知识太短,无法使其发挥作用。 脚本是:

 <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=MY_KEY&libraries=places">
 </script>

 <script>
 function initialize() {
    var address = (document.getElementById('city-input'));
    var autocomplete = new google.maps.places.Autocomplete(address);
    autocomplete.setTypes(['geocode']);
    google.maps.event.addListener(autocomplete, 'place_changed', function() 
 {
        var place = autocomplete.getPlace();
        if (!place.geometry) {
            return;
        }

    var address = '';
    if (place.address_components) {
        address = [
            (place.address_components[1] && place.address_components[1].short_name || ''),
            (place.address_components[2] && place.address_components[2].short_name || '')
            ].join(' ');
    }
    document.getElementById('lat').innerHTML = place.geometry.location.lat();
    document.getElementById('lng').innerHTML = place.geometry.location.lng();
    });
    }

    google.maps.event.addDomListener(window, 'load', initialize);

   </script>

   <input id="city-input" class="controls" type="text"
    placeholder="Enter a location">
   <div id="lat"></div>
   <div id="lng"></div>

对于 php 部分,我正在尝试这个,但没有任何结果

   <?php 
    $latitude = (isset($_GET['lat']))?$_GET['lat']:'';
    $longitude = (isset($_GET['lng']))?$_GET['lng']:'';   
    echo $latitude;
    echo $longitude;
    ?>

有什么方法可以做我想做的事吗? (使用从 googleapis 正确获取的值获取 $latitude 和 $longitude?) 非常感谢您的宝贵帮助:-)

【问题讨论】:

  • 你的意思是,当你回传到服务器时,你没有得到 lat 和 long 的值?看起来像城市输入?如果是这样,您可以使用类型为 hidden 的输入来保存 lat 和 long 的值并在下面为其设置值: document.getElementById('long').innerHTML = place.geometry.location.lng();

标签: php


【解决方案1】:

很抱歉将 vanialla JS 与 jquery 混淆。但我正在尽力提供帮助。

你可以使用 ajax 获取 lat 值和 long 值并将其传递给 ajax 数据。让我们称之为 latjs 和 lonjs

$.ajax({
            type: "POST",
            url: "lat_lon.php",
            data: "lat="+latjs+"&lon="+lonjs,
            success: function (html) {

                if (html === 'true') {

在php端,这样捕获:

$data = file_get_contents('php://input');

if($data != null) { parse_str($data, $output);

$output_lan = $output['lat'];

$output_lon = $output['lon'];

等等等等过程 }

【讨论】:

  • 非常感谢您的宝贵帮助。我认为这可能是一个解决方案,我将解决它并让您知道结果。谢谢。
【解决方案2】:

最后2个赋值代码错误:

document.getElementById('lat').innerHTML = place.geometry.location.lat();
document.getElementById('long').innerHTML = place.geometry.location.lng();

以上应该是

$("#lat").html(place.geometry.location.lat());
$("#long").html(place.geometry.location.lng());

代码不是 100% 工作的,但应该在上面的行中。无需使用 get elementbyID 之类的。

希望这会有所帮助 VNay KR

【讨论】:

  • 我不确定这是否定的。因为它在comp中工作
  • 我认为是因为您使用 jQuery 而不是 vanilla JS 来选择 lat 和 long 的 ID。它没有在代码中的任何其他地方使用,所以只会混淆作者。
  • @vinay K R 2 非常感谢您的回复。我编辑了原始代码以使其更易于理解(我希望)。原始代码运行良好,因为我得到了正确的 lat 和 lng 数值。按照您的建议替换这两行,也给了我正确的值。问题仍然相同:如何将这些值传递给 $latitude 和 $longitde 等变量以在 php 脚本中使用它们?谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-03-12
  • 2021-10-05
  • 1970-01-01
  • 2019-08-18
  • 2013-06-01
  • 1970-01-01
  • 2019-07-07
  • 2012-04-26
相关资源
最近更新 更多