谷歌地图信息框 Js 和 PHP

时间:2021-07-12 14:10:37

标签: javascript php jquery google-maps

下午好,我有一个无法解决的问题。 在javascript中我有这个:

function locationData(locationURL, locationImg, locationTitle, locationAddress, locationPrice, locationStarRating) {
        return ('<div class="map-popup-wrap"><div class="map-popup"><div class="infoBox-close"><i class="far fa-times"></i></div><a href="' + locationURL + '" class="listing-img-content fl-wrap"><img src="' + locationImg + '" alt=""><span class="map-popup-location-price"><strong>Awg/Night</strong>' + locationPrice + '</span></a> <div class="listing-content fl-wrap"><div class="card-popup-raining map-card-rainting" data-staRrating="' + locationStarRating + '"></div><div class="listing-title fl-wrap"><h4><a href=' + locationURL + '>' + locationTitle + '</a></h4><span class="map-popup-location-info"><i class="fas fa-map-marker-alt"></i>' + locationAddress + '</span></div></div></div></div>')
    }
    var imagepath = $('#img_path').val();

var locations = [
        [locationData('listing-single.html', imagepath+'gal/1.jpg', 'Premium Plaza Hotel', '1327 Intervale Ave, Bronx, NY, USA', '$ 320', '5'), 40.72956781, -73.99726866, 0, markerIcon],
        [locationData('listing-single.html', imagepath+'gal/1.jpg', 'Grand Hero Palace', 'W 85th St, NY, USA ', '$ 120', '4'), 40.76221766, -73.96511769, 1, markerIcon],
        [locationData('listing-single.html', imagepath+'gal/1.jpg', 'Park Central', '40 Journal Square Plaza, NJ,  USA', '$ 50', '5'), 40.88496706, -73.88191222, 2, markerIcon],
        [locationData('listing-single.html', imagepath+'gal/1.jpg', 'Holiday Home', '75 Prince St,  NY, USA', '$ 50', '3'), 40.72228267, -73.99246214, 3, markerIcon],
        [locationData('listing-single.html', imagepath+'gal/1.jpg', 'Gold Plaza Hotel', '34-42 Montgomery St, New York, NY', '$ 210', '5'), 40.94982541, -73.84357452, 4, markerIcon],
        [locationData('listing-single.html', imagepath+'gal/1.jpg', 'Moonlight Hotel', '70 Bright St, Jersey City, NJ', '$ 105', '4'), 40.90261483, -74.15737152, 5, markerIcon],
        [locationData('listing-single.html', imagepath+'gal/1.jpg', 'Zebra Premium Hotel', '123 School St. Lynchburg, NY ', '$ 115', '3'), 40.79145927, -74.08252716, 6, markerIcon],
        [locationData('listing-single2.html', imagepath+'gal/1.jpg', 'Fancy Hotel', 'Mt Carmel Pl, New York, NY', '$70', '5'), 40.58423508, -73.96099091, 7, markerIcon],
        [locationData('listing-single2.html', imagepath+'gal/1.jpg', 'Luxary Hotel-Spa', '1-30 Hunters Point Ave, Long Island City, NY', '$320', '5'), 40.58110616, -73.97678375, 8, markerIcon],
        [locationData('listing-single3.html', imagepath+'gal/1.jpg', 'NY Plaza Hotel', '726-1728 2nd Ave, New York, NY', '$ 120', '5'), 40.73112881, -74.07897948, 9, markerIcon],
        [locationData('listing-single3.html', imagepath+'gal/1.jpg', 'Apartment Hotel-Spa', '9443 Fairview Ave, North Bergen, NJ', '$ 210', '4'), 40.67386831, -74.10438536, 10, markerIcon],
    ];

在 php 中,我有一个查询可以检索所有这些信息,但我不知道如何以 javascript 格式传递它。

如果 php 我有这样的东西:

$array_hotel = array();
$array_hotel[$i]["hotelname"] = 'Pippo';
$array_hotel[$i]["image"] = 'https://xxxxx.com/test.jpg';
$array_hotel[$i]["address"] = 'Via del corso 22';
$array_hotel[$i]["amount"] = 220;
$array_hotel[$i]["rate"] = 4;
$array_hotel[$i]["latitude"] = '45.231434';
$array_hotel[$i]["longitude"] = '-0.245454';

谁能帮帮我?非常感谢 佛朗哥

1 个答案:

答案 0 :(得分:0)

不,我不使用 json 进行转换,因为必须在内部使用该函数...我解决了这个问题:

{foreach $arrayhotel as $hotel}
                        
                        <div class="listing-item map_data"  hotel-id="{$hotel['accomodation_id']}" 
                                                            hotel-encripted="{$hotel['encripted']}"
                                                            hotel-name="{$hotel['hotelname']}" 
                                                            hotel-address="{$hotel['address']} {$hotel['city']}" 
                                                            hotel-price="&euro;&nbsp;{$hotel['accomodation_amount']}" 
                                                            hotel-rate="{$hotel['category']}"
                                                            hotel-image="{$hotel['image']}"
                                                            hotel-latitude="{$hotel['latitude']}"
                                                            hotel-longitude="{$hotel['longitude']}"
                                                            hotel-number="{$i}">

我在 tpl 和 map.js 中 foreach 的结果

 function locationData(locationURL, locationImg, locationTitle, locationAddress, locationPrice, locationStarRating) {
        return ('<div class="map-popup-wrap"><div class="map-popup"><div class="infoBox-close"><i class="far fa-times"></i></div><a href="' + locationURL + '" class="listing-img-content fl-wrap"><img src="' + locationImg + '" alt=""><span class="map-popup-location-price"><strong>Awg/Night</strong>' + locationPrice + '</span></a> <div class="listing-content fl-wrap"><div class="card-popup-raining map-card-rainting" data-staRrating="' + locationStarRating + '"></div><div class="listing-title fl-wrap"><h4><a href=' + locationURL + '>' + locationTitle + '</a></h4><span class="map-popup-location-info"><i class="fas fa-map-marker-alt"></i>' + locationAddress + '</span></div></div></div></div>')
    }
    var imagepath = $('#img_path').val();

    //  Map Infoboxes ------------------
    
    var locations = [];
    $('.map_data').each(function() {
        var loc1 = locationData('listing-single.php?encoded='+$(this).attr('hotel-encripted'), $(this).attr('hotel-image'),$(this).attr('hotel-name'), $(this).attr('hotel-address'),$(this).attr('hotel-price'), $(this).attr('hotel-rate'));
        var loc2 = $(this).attr('hotel-latitude');
        var loc3 = $(this).attr('hotel-longitude');
        var loc4 = $(this).attr('hotel-number');
        locations.push([loc1, loc2, loc3, loc4, markerIcon]);
    })

它有效......