Из примера вы ссылаетесь на:
var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
, который должен находиться в php-файле, а не в файле functions.js, как вы и делаете. Код между ними - php, поэтому его нужно запускать на стороне сервера, он не может работать на javascript (который на стороне клиента и поэтому ничего не знает о php или любом коде \ переменные \ etc на стороне сервера)
РЕДАКТИРОВАТЬ:
Теперь, когда вы добавили свой код, попробуйте что-то вроде следующего. Извините, я не слишком знаком с 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>";
Тогда ваш Javascript становится (обратите внимание, что переменная mapsPoint уже была выведена регионами. 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 в вашем js-файле.