2012-12-11 57 views
1

我正在讀取一個數組,並且我想將一些數據插入到javascript中的兩個地方,但我不知道如何做得正確,有人可以幫我嗎?在(MYSQL)數據庫中獲取(PHP)數組並將一些php數組數據插入到JavaScript中

我取一個數組中的PHP/MySQL的,像這樣:

<?php while($row = mysql_fetch_array($result)) { ?> 

<?php 
//I WANT TO LOOP THE BELOW CODE IN JAVASCRIPT SOMETHING LIKE THIS?: 
echo 'var point'.$count.'= new google.maps.LatLng('.$LAT.', '.$LNG.');'; 
?> 

<?php 
// I WANT TO LOOP THIS ALSO BUT IT IS AT THE END OF THE JAVASCRIPT CODE AND THERE IS CODE IN THE MIDDLE THAT I DON'T WANT LOOPED 
echo 'var marker'.$count.'= new google.maps.Marker({draggable: true,raiseOnDrag: false,icon: image,shadow: shadow,shape: shape,map: map,position: point'.$count.'});'; 
?> 

<?php } ?> 

中的JavaScript看起來像這樣:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
    <script type="text/javascript"> 
    function load(){ 

//** START LOOP THIS IN PHP **//  
    var point1 = new google.maps.LatLng(44.8041322, -93.1668858); //LOOP THIS IN PHP 
//** END LOOP THIS IN PHP **//  

    var myMapOptions = { 
    zoom: 5, 
    center: point, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 
    var map = new google.maps.Map(document.getElementById("map"),myMapOptions); 
    var image = new google.maps.MarkerImage(
    'marker-images/image.png', 
    new google.maps.Size(40,35), 
    new google.maps.Point(0,0), 
    new google.maps.Point(20,35) 
    ); 
    var shadow = new google.maps.MarkerImage(
    'marker-images/shadow.png', 
    new google.maps.Size(62,35), 
    new google.maps.Point(0,0), 
    new google.maps.Point(20,35) 
    ); 
    var shape = { 
    coord: [27,0,30,1,32,2,34,3,35,4,36,5,38,6,39,7,39,8,39,9,39,10,38,11,37,12,33,13,34,14,34,15,33,16,32,17,31,18,27,19,28,20,28,21,27,22,26,23,22,25,23,26,24,27,24,28,24,29,24,30,24,31,24,32,23,33,22,34,17,34,16,33,15,32,15,31,14,30,14,29,15,28,15,27,16,26,17,25,13,23,12,22,11,21,11,20,12,19,8,18,7,17,6,16,5,15,5,14,6,13,2,12,1,11,0,10,0,9,0,8,0,7,1,6,3,5,4,4,5,3,7,2,9,1,12,0,27,0], 
    type: 'poly' 
    }; 

//** START LOOP THIS IN PHP **// 
    var marker1 = new google.maps.Marker({draggable: true,raiseOnDrag: false,icon: image,shadow: shadow,shape: shape,map: map,position: point1}); 
//** END LOOP THIS IN PHP **// 

    } 
    </script> 

我只是不知道如何循環的信息兩次,頂部的var point1 ...循環並不是一個真正的問題,但我如何循環底部沒有循環所有的javascript腳本

+1

請不要使用'mysql_ *'功能,因爲它們是在[折舊過程(http://news.php.net/php.internals/53799)。改爲使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php),[be一個更好的PHP開發人員](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 –

+0

請提出一個明確的問題。我不會閱讀你的代碼,以瞭解問題的基本知識。 – Jelmer

+0

@Jelmer問題的基礎知識已經在標題中:在(MYSQL)數據庫中獲取(PHP)數組,並將一些php數組數據插入到JavaScript中我應該插入什麼? – compcobalt

回答

1

下面應該工作,然後只需插入$ point_str和$ marker_str我在while循環之後的適當位置。

<?php 
$point_str = ''; 
$marker_str = ''; 
while($row = mysql_fetch_array($result)) { 
    // define $LAT, $LNG, $count++ 
    $point_str .= 'var point'.$count.'= new google.maps.LatLng('.$LAT.', '.$LNG.');'."\n"; 
    $marker_str .= 'var marker'.$count.'= new google.maps.Marker({draggable: true,raiseOnDrag: false,icon: image,shadow: shadow,shape: shape,map: map,position: point'.$count.'});'."\n"; 
} 
?> 
+0

SUPER!謝謝。 – compcobalt

相關問題