我有javascript函数来计算“我的位置”与其坐标是从数据库中提取的另一个位置之间的距离。现在,我正在使用php从数据库中提取数据并在HTML表格中显示数据。我也用php调用javascript。该函数执行正常,我得到了所需的结果。但是,我现在想将此函数的输出重定向到HTML表中。
这是我的代码:
<script>
var latLngA;
function getLocation(coordinates,call_number) {
//alert("Entering with coordinates " + coordinates + " and call number " + call_number);
navigator.geolocation.getCurrentPosition(
function(position) {
if(call_number == 0){
latLngA = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
}
var latlong = coordinates.split(",");
var latLngB = new google.maps.LatLng(parseFloat(latlong[0]), parseFloat(latlong[1]));
var distance = google.maps.geometry.spherical.computeDistanceBetween(latLngA, latLngB);
var table = document.getElementById('venue_list');
var tbody = table.getElementsByTagName('tbody')[0];
var rows = tbody.getElementsByTagName('tr');
rows[i].getElementsByTagName('td')[2].innerHTML = distance/1000;
},
function() {
alert("Geo-location not supported!");
}
);
}
</script>
<?php
$i = 0;
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_array($result))
{
$name = $row['NAME'];
$img = $row['IMAGE_SRC'];
$addr = $row['ADDRESS'];
$location = $row['LOCATION'];
$coordinates = $row['COORDINATES'];
echo "<script type='text/javascript'>map_function('{$addr}','{$name}','{$img}','{$i}');</script>";
?>
<tr>
<td>
<img src="<?php echo $img.".jpg"?>" height="100" width="100">
</td>
<td>
<?php echo $name?>
</td>
<td>
<?php echo "<script type='text/javascript'>getLocation('{$coordinates}','{$i}');</script>";?>
</td>
<td style="display:none;">
<?php echo $location?>
</td>
</tr>
<?php
$i=$i+1;
}
?>
venue_list是显示数据的表的id。虽然函数执行得很好,但是我无法在相应的表行中获得输出。等待解决方案。感谢。
答案 0 :(得分:0)
rows [i]似乎不对。 如果你通过使用循环来咀嚼它们,试着给td的不同id。这样可以更轻松地访问它们。