[英]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.