将数组通过localStorage传递到一个不按预期工作的新数组

时间:2015-08-26 15:25:35

标签: javascript php arrays google-maps local-storage

这是一个相当漫长,复杂和具体的问题,但我希望有人可以提供帮助,因为我似乎无法找到破解它的原因/逻辑。

注意我知道我使用弃用的mysql,但这不是问题所在(加上我的托管网站只支持旧版本)

第1部分是dataLoader.php - >此脚本查询数据库。从表格中我们得到表格中每行的posxposy。然后通过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;
&#13;
&#13;

第2部分是download.php,其中dataLoader.php的数据(坐标)被拍摄并绘制到谷歌地图上。 问题是当我检查localStorage时(使用f12),它将第一行的值两次,而不是有两组不同的值。

困扰我的一点是它只存储第一个团队在数据库表中的值而不是第二个团队的值。我的麻烦是为表格中的每一行获得posx和posy,然后为每个posx和posy在地图上放置一个标记。值由echo显示(两行的值不同),但在localStorage中,它只是第一行的值。

但是出于某种原因,我无法传递第二个表行的值。

  • 当然,如果有什么我应该得到最后一行的值而不是第一行的值,因为循环至少运行一次,但我似乎得到的是来自第一个循环的数据。希望这一切都有意义,并提前感谢。

    • 在屏幕截图中,您可以看到左侧的回声输出和存储在localstorage中的值,这些值不相符。

You can see that it is not storing the second value, even though it is looping through

0 个答案:

没有答案