2011-07-06 14 views
7

इसलिए मेरे पास region.php नामक एक पृष्ठ है, जो हेडर में, JQuery, Google मानचित्र API लोड करता है, और कस्टम ऐक्सेस जो मैं अपने ऐप के लिए उपयोग करता हूं functions.js नामक फ़ाइल में।Google मानचित्र - मानचित्र पर अंक प्राप्त करने के लिए पीएचपी सरणी में अंक प्राप्त करना

region.php में, मैं MySQL डीबी से कुछ पंक्तियां खींचता हूं और उन्हें एक php सरणी, $ क्षेत्रों में संग्रहीत करता हूं।

मेरे functions.js फ़ाइल में, मैं $ क्षेत्र क्षेत्र सरणी में json_encode json_encode करने की कोशिश कर रहा हूं, और इसे Google मानचित्र पर $ क्षेत्रों के सरणी के सभी लेट्स और लम्बाई खेलने के लिए अपने फ़ंक्शन में पास कर रहा हूं। हालांकि, आईएम को जावास्क्रिप्ट में पीएचपी सरणी प्राप्त करने में परेशानी हो रही है।

मैं इसका अनुसरण कर रहा था लेकिन यह मेरे लिए काम नहीं कर रहा है: Iterating through a PHP array in jQuery?। ऐसा लगता है कि जावास्क्रिप्ट उदाहरण में php के साथ काम कर सकता है उदाहरण में वे

कोई विचार? (और मैं अगर im इस बारे में सब गलत हो रहा लगता है - सबसे अच्छा तरीका है जावास्क्रिप्ट में php सरणी प्राप्त करने के लिए है कि क्या

Region.php $ क्षेत्रों = get_regions();

foreach($regions as $region) : 

    print $region['name']; 

endforeach; 


print "<div id='map_view_canvas' style=\"width:300px; height:300px; \"></div>"; 

कार्यों?। js

$(document).ready(function() { 

    initialize_view_map(); 
} 

function initialize_view_map() 
{ 
    var latlng = new google.maps.LatLng(9.3939, 20.57268); 
    var myOptions = { 
     zoom: 2, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_view_canvas"), myOptions); 

    var mapPoints = <?php echo json_encode($regions) ?>; 

    $.each(mapPoints, function (i, elem) { 

     var newLatLng = new google.maps.LatLng(elem.latitude, elem.longitude); 

     var marker = new google.maps.Marker({ 
      position: newLatLng, 
      map: map, 
      draggable:false, 
      animation: google.maps.Animation.DROP 
     }); 

    }); 
} 
+0

क्या आप हमें अपना कुछ कोड दिखा सकते हैं? –

+0

ठीक है मेरे कोड जोड़ा! – djt

उत्तर

5

उदाहरण आप लिंक से:

var arrayFromPHP = <?php echo json_encode($viewFields) ?>; 

जरूरत है कि एक php फ़ाइल में जाने के लिए आपके functions.js फ़ाइल नहीं है, जो आपके जैसा लगता है। PHP के बीच कोड है, इसलिए सर्वर की तरफ चलाने की जरूरत है, यह जावास्क्रिप्ट में नहीं चलाया जा सकता है (जो क्लाइंट साइड है और इसलिए PHP या किसी सर्वर साइड कोड \ चर के बारे में कुछ भी नहीं जानता है \ 0)

संपादित करें:

अब जब आपने अपना कोड जोड़ा है, तो निम्न की तरह कुछ आज़माएं। क्षमा करें, मैं php के साथ भी परिचित नहीं हूँ, लेकिन उम्मीद है कि आपको अंदाजा हो: (

Regions.php

$regions = get_regions(); 

foreach($regions as $region) : 

    print $region['name']; 

endforeach; 

print "<script>"; 
print "var mapPoints = "; 
echo json_encode($regions->toArray()); 
print "</script>"; 
print "<div id='map_view_canvas' style=\"width:300px; height:300px; \"></div>"; 

फिर अपने जावास्क्रिप्ट हो जाता है ध्यान दें mapsPoint चर पहले से ही regions.php द्वारा उत्पादन किया गया है इसलिए मैं इसे यहाँ हटाने)

$(document).ready(function() { 

    initialize_view_map(); 
} 

function initialize_view_map() 
{ 
    var latlng = new google.maps.LatLng(9.3939, 20.57268); 
    var myOptions = { 
     zoom: 2, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_view_canvas"), myOptions); 

    $.each(mapPoints, function (i, elem) { 

     var newLatLng = new google.maps.LatLng(elem.latitude, elem.longitude); 

     var marker = new google.maps.Marker({ 
      position: newLatLng, 
      map: map, 
      draggable:false, 
      animation: google.maps.Animation.DROP 
     }); 

    }); 
} 

EDIT2:

एक और बात, नाम बदलने है अपने functions.js function.js.php करने की कोशिश यह करने के लिए किसी भी संदर्भ को अद्यतन और फिर उस कोशिश करने के लिए - तो उम्मीद है कि यह php पाइपलाइन के माध्यम से चलाएगा और आपके जेएस फ़ाइल में PHP कोड चलाएगा।

+0

आह मैं देखता हूं। तो क्या उस जवाब में एक त्रुटि है? ऐसा लगता है: var arrayFromPHP = ; - इसका मतलब है कि इसके लिए जावास्क्रिप्ट चर होना चाहिए .. – djt

+0

नहीं, वह उत्तर सही है। उनके पास आपके पास एक अलग जावास्क्रिप्ट फ़ाइल नहीं है। आप अपनी PHP फ़ाइल में अपनी जावास्क्रिप्ट को एम्बेड कर सकते हैं, या बस इसे अपने PHP में जावास्क्रिप्ट चर में लोड कर सकते हैं, फिर इसे अपने जावास्क्रिप्ट फ़ाइल में उपयोग करें (यह एक वैश्विक चर की तरह थोड़ा है हालांकि बहुत अच्छा नहीं है) – mutex

+0

एचएम मैं देखता हूं। तो क्या इसके बारे में बेहतर जाना है? – djt

संबंधित मुद्दे