0

私は地図を持っています。私がやろうとしているのは、情報ウィンドウにテーブルを表示することです。私は、java-script と php を混合することによってそれを達成しました (どちらも私はあまりよく知りません)。私の質問は、なぜ私の地図が表示されないのですか? ソースコードを表示すると、すべてが思いどおりに表示されますが、マップが表示されない原因は何かばかげています。以下のコードを投稿しましたが、うまくいけば、より熟練した目が問題を捉えることができます。私はコーディングを始めてまだ 6 か月しか経っていませんが、まだ多くの間違いを犯しています。

だから私が抱えている問題はこの部分です

 "<?php
    $cnt = 0;
    foreach ($default_properties as $prop_key => $value) {

      ?>"
    '<div class="view-row">'
      '<div class="view-label">'."<?php echo $prop_key?>".'</div>' +;
      '<div class="view-value">'. "<?php echo $value?>".'</div>' +;
    '</div>'; "<?php 

      $cnt++;
    }

    if ($node_id > 0) {

    foreach ($node_values as $prop_key => $value) {


    ?>"
    '<div class="view-row">'
      '<div class="view-label">'."<?php echo $prop_key?>".'</div>' +;
      '<div class="view-value">'. "<?php echo $value?>".'</div>' +;
    '</div>';<?php 

      $cnt++;
    }

    } 

    ?>" 

配列が読み込まれるように上記の部分を操作できますが、フォーマットできません。このようにすると、フォーマットは正しくなりますが、マップは読み込まれません。しかし、マップのソース コードを表示すると、すべてが表示されます。だから私は真剣に混乱しています。

以下の完全なスクリプト

<script type="text/javascript">

    var infowindow = new google.maps.InfoWindow();    
    var browserSupportFlag =  new Boolean();



function initialize() 
    {
        var latlng = new google.maps.LatLng(38.9550040,-77.4045560);
        var settings = 


    //sets the settings of the map

        {
            zoom: 5,
            center: latlng,
            mapTypeControl: true,
            mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
            navigationControl: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP        
        }

        geocoder = new google.maps.Geocoder();
        map = new google.maps.Map(document.getElementById("map_canvas"), settings); 

        // Try W3C Geolocation (Preferred)   

        if(navigator.geolocation) 
        {    
            browserSupportFlag = true;     
            navigator.geolocation.getCurrentPosition(function(position) 

            {       
              initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);      
              map.setCenter(initialLocation);     
            }, function() 

                {       
                    handleNoGeolocation(browserSupportFlag);     
                });   
        }   

    // Browser doesn't support Geolocation  

        else 
            {     
              browserSupportFlag = false;     
              handleNoGeolocation(browserSupportFlag);   
            } 



        function handleNoGeolocation(errorFlag) 
            {     
                if (errorFlag == true) 

                {       
                  alert("Geolocation service failed.");       
                  initialLocation = Virgina;     
                } 
                else 
                {       
                  alert("Your browser doesn't support geolocation. We've placed you in here.");       
                  initialLocation = '';    
                }     
                  map.setCenter(initialLocation);  
            } 
    }



        // Takes an address and places a marker in google maps

function codeAddress() 

    {     
        var address = "<?php echo $node_address?>";
        var description = "<?php echo $node_title?>";
        var property = "<?php echo $default_properties?>";
        var values = "<?php echo $node_values?>";

        <?php
            $js_array = json_encode($end_node_addresses);
            echo "var end_addresses = ". $js_array . ";\n";
        ?>

        var image = "<?php echo $entity_icon?>";


        geocoder.geocode( { 'address': address}, function(results, status) 
        {       
            if (status == google.maps.GeocoderStatus.OK) 
            {         
                map.setCenter(results[0].geometry.location); 

                var contentString = '<div id="contentmarker">'+
                    '<div id="siteNotice">'+
                    '</div>'+
                    '<h2 id="firstHeading" class="firstHeading"><?php echo $node_title?></h2>'+
                    '<div id="bodyContent">'+
                    '<p> Is a <?php echo $entity_name?> located in<?php echo $node_address?></br> "<?php
    $cnt = 0;
    foreach ($default_properties as $prop_key => $value) {

      ?>"
    '<div class="view-row">'
      '<div class="view-label">'."<?php echo $prop_key?>".'</div>' +;
      '<div class="view-value">'. "<?php echo $value?>".'</div>' +;
    '</div>'; "<?php 

      $cnt++;
    }

    if ($node_id > 0) {

    foreach ($node_values as $prop_key => $value) {


    ?>"
    '<div class="view-row">'
      '<div class="view-label">'."<?php echo $prop_key?>".'</div>' +;
      '<div class="view-value">'. "<?php echo $value?>".'</div>' +;
    '</div>';<?php 

      $cnt++;
    }

    } 

    ?>"     <b></b></p>'+
                    '</div>'+
                    '</div>';

                var infowindow = new google.maps.InfoWindow(
                {
                    content: contentString
                });


                var marker = new google.maps.Marker({            
                map: map,             
                position: results[0].geometry.location, 
                icon: image,
                title: address
                });  

                google.maps.event.addListener(marker, 'click', function() {
                  infowindow.open(map,marker);
                });
            } 

            else 
            {        
                alert("Geocode was not successful for the following reason: " + status);       
            }     
        });  

        var title_vars = end_addresses;

        for (i = 0; i < end_addresses.length; i++)
        {
            geocoder.geocode( { 'address': end_addresses[i]}, function(results, status) 
            {
                if (status == google.maps.GeocoderStatus.OK) 
                {       
                    map.setCenter(results[0].geometry.location);

                var contentString = '<div id="contentmarker">'+
                    '<div id="siteNotice">'+
                    '</div>'+
                    '<h2 id="firstHeading" class="firstHeading"><?php echo $node_title?></h2>'+
                    '<div id="bodyContent">'+
                    '<p> Is located in "<?php echo $js_array?>"</p>'+
                    '</div>'+
                    '</div>';

                var infowindow = new google.maps.InfoWindow({
                    content: contentString
                });

                                    var marker = new google.maps.Marker({            
                                    map: map,             
                                    position: results[0].geometry.location,
                                    icon: image,
                                    title: title_vars.shift(),
                                    });  
                            google.maps.event.addListener(marker, 'click', function() {
                  infowindow.open(map,marker);
                });     
                                } 

                                else 
                                {        
                                    alert("Geocode was not successful for the following reason: " + status);       
                                }     
                            }); 
        }
    } 
</script> 
4

1 に答える 1

0

これらの引用符を削除しましょう。

<?php
    $cnt = 0;
    foreach ($default_properties as $prop_key => $value) {

?>
    <div class="view-row">
      <div class="view-label"><?php echo $prop_key?></div>
      <div class="view-value"><?php echo $value?></div>
    </div>
<?php 
      $cnt++;
    }

    if ($node_id > 0) {

    foreach ($node_values as $prop_key => $value) {

?>
    <div class="view-row">
      <div class="view-label"><?php echo $prop_key; ?></div>
      <div class="view-value"><?php echo $value; ?></div>
    </div>
<?php 

      $cnt++;
    }

    } 
?>

PHP から抜け出すことなく:

<?php
    $cnt = 0;
    foreach ($default_properties as $prop_key => $value) {

    echo '<div class="view-row"><div class="view-label">' . 
        $prop_key . '</div><div class="view-value">' . 
        $value . '</div></div>';

      $cnt++;
    }

    if ($node_id > 0) {

    foreach ($node_values as $prop_key => $value) {

    echo '<div class="view-row"><div class="view-label">' . 
        $prop_key . '</div><div class="view-value">' . 
        $value . '</div></div>';

      $cnt++;
    }

    } 
?>
于 2012-08-31T23:08:46.987 に答える