简体   繁体   English

通过PHP将数据从SQL数据库移动到JavaScript中的数组

[英]Moving data from SQL database to an array in JavaScript via PHP

Ive been trying this for hours now but it wont quite get there. 我已经尝试了几个小时,但是还不能达到目标。

I have a database which amongst other things contains geocodes, lat and lon. 我有一个数据库,其中除其他外还包含地理编码,纬度和经度。 I have accessed these using the following PHP 我已经使用以下PHP访问了这些

<?php
 mysql_connect("localhost", "tompublic", "public") or die(mysql_error()); 
 mysql_select_db("first_section") or die(mysql_error()); 

$data = mysql_query("SELECT geo_lat, geo_lon FROM first_page_data")
or die(mysql_error());
while ($row = mysql_fetch_assoc($data)){
$lat[] = $row['geo_lat'];
$lon[] = $row['geo_lon'];
}
?>

These values in $lat and $lon then need to be put into an array in a javascript function like so: 然后需要将$lat$lon这些值放入javascript函数的数组中,如下所示:

var latit = [];
var longi = [];
latit = '<?php echo $lat[]; ?>';
longi = '<?php echo $lon[]; ?>';

But it wont work! 但这行不通! Any ideas? 有任何想法吗?

Try: 尝试:

var latit = <?php echo json_encode($lat); ?>;
var longi = <?php echo json_encode($lon); ?>;

Edit: Also, the mysql_ functions are deprecated. 编辑:此外,不建议使用mysql_函数。

You could try this: 您可以尝试以下方法:

var latit = [<?php echo implode(",",$lat) ?>];
var longi = [<?php echo implode(",",$lon) ?>];

First thing is first try to switch to MySQLi due to the fact that Mysql is depreciated. 首先,由于Mysql已过时,首先尝试切换到MySQLi。

But try 但是尝试

var latit = <?php echo json_encode($lat); ?>;
var longi = <?php echo json_encode($lon); ?>;

JavaScript arrays are created using a comma separated list surrounded by brackets JavaScript数组是使用逗号分隔的列表创建的,并用方括号括起来

var latit = [];

To use your PHP values 使用您的PHP值

var latit = [<?PHP echo implode(",",$lat); ?>];

This assumes your values are numbers. 假设您的值是数字。 If not, you'll need to include quotes. 如果不是,则需要加上引号。

var latit = ['<?PHP echo implode("','",$lat); ?>'];

Finally, json_encode is a good option as many of the other answers indicate. 最后,正如许多其他答案所表明的那样, json_encode是一个不错的选择。

You can either do as @Robbert stated 您可以按照@Robbert的说明进行操作

OR Using php json_encode convert it to JSON string and you need to JSON.parse() it to convert it to javascript object 或使用php json_encode将其转换为JSON字符串,您需要JSON.parse()将其转换为javascript对象

 var latit = JSON.parse("<?php echo json_encode($lat); ?>");
 var longi = JSON.parse("<?php echo json_encode($lon); ?>");

Try this: 尝试这个:

<?php
 mysql_connect("localhost", "tompublic", "public") or die(mysql_error()); 
 mysql_select_db("first_section") or die(mysql_error()); 

$data = mysql_query("SELECT geo_lat, geo_lon FROM first_page_data")
 or die(mysql_error());
while ($row = mysql_fetch_assoc($data)){
$lat[] = $row['geo_lat'];
$lon[] = $row['geo_lon'];
}
 echo '
 <script type="text/javascript">    
  var latit  = '.json_encode($lat).';
  var longi  = '.json_encode($lon).';
 </script>
';
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM