这是一个相当漫长,复杂和具体的问题,但我希望有人可以提供帮助,因为我似乎无法找到破解它的原因/逻辑。
注意我知道我使用弃用的mysql,但这不是问题所在(加上我的托管网站只支持旧版本)
第1部分是dataLoader.php
- >此脚本查询数据库。从表格中我们得到表格中每行的posx
和posy
。然后通过localStorage将这些内容发送到另一个页面 - download.php
。这是dataLoader.php
的相关代码:
<html>
<meta http-equiv="refresh" content="10">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
var xPos = [];
var yPos = [];
</script>
<?php //*Connect to database*
$locationq = "SELECT posx, posy FROM locations";
$locationrs = mysql_query($locationq) or die ('Couldnt get location'.mysql_error());
while ($locrow = mysql_fetch_assoc($locationrs))
{
echo " | " .$locrow['posx'] . " | " . $locrow['posy'];
$posx = $locrow['posx'];
$posy = $locrow['posy'];
echo "<input type ='hidden' class='posx' name='posx' value='$posx' >";
echo "<input type ='hidden' class='posy' name='posy' value='$posy' ><br>";
echo "<script> xPos.push($('.posx').val()); yPos.push($('.posy').val());
</script>";
}
echo "<script>localStorage.setItem('xPos',xPos);
localStorage.setItem('yPos',yPos);</script>";
echo $posx;
echo $posy;
exit;
mysql_close(); ?>
</body>
</html>
&#13;
第2部分是download.php
,其中dataLoader.php
的数据(坐标)被拍摄并绘制到谷歌地图上。 问题是当我检查localStorage时(使用f12),它将第一行的值两次,而不是有两组不同的值。
困扰我的一点是它只存储第一个团队在数据库表中的值而不是第二个团队的值。我的麻烦是为表格中的每一行获得posx和posy,然后为每个posx和posy在地图上放置一个标记。值由echo显示(两行的值不同),但在localStorage中,它只是第一行的值。
但是出于某种原因,我无法传递第二个表行的值。
当然,如果有什么我应该得到最后一行的值而不是第一行的值,因为循环至少运行一次,但我似乎得到的是来自第一个循环的数据。希望这一切都有意义,并提前感谢。