我试图找到一种方法,允许我使用输入字段值设置和更新javascript变量。
基本上我正在尝试使用Google Map创建一个简单的基于Web的导航系统。
正常变量如下所示:
var start = [51.6111056367416, 0.08299685083337408];
上面的代码工作正常。它将在Google Map上显示正确的位置。但是,我正在尝试动态设置和更新变量值(可能每隔几秒更新一次)。
所以我使用AJAX从MYSQL数据库中获取值,如下所示:
<script>
$(document).ready(function () {
function load() {
$.ajax({ //create an ajax request to load_page.php
type: "GET",
url: "location.php",
dataType: "html", //expect html to be returned
success: function (response) {
$("#map-directions").html(response);
var input = document.getElementById("map-directions").innerHTML;
document.getElementById("map-txt").value = document.getElementById("map-directions").innerHTML;
setTimeout(load, 8000);
}
});
}
load();
});
</script>
,HTML就是这样:
<div id="map-directions"></div>
<input type="text" id="map-txt" value="" />
所以上面的代码将每8秒运行一次,并从MYSQL数据库中获取新数据,并将新数据放入map-directions
Div,并将相同的数据复制到map-txt
输入字段。
这也可以。
现在,我遇到的问题是当我改变
时var start = [51.6111056367416, 0.08299685083337408];
要
var start = document.getElementById("map-txt").value;
我在地图上找到一个位置不正确的奇怪位置!
尽管inputfield的值与[51.6111056367416, 0.08299685083337408];
有人可以就此问题提出建议吗?
答案 0 :(得分:0)
技巧与此行(数据类型问题):
document.getElementById("map-txt").value = document.getElementById("map-directions").innerHTML;
您正在获取数据并放入一个保存为字符串变量的文本框。
简而言之。
var start = [51.6111056367416, 0.08299685083337408]; //data type array
start[0]
会给你51.6111056367416
其中
document.getElementById("map-txt").value = [51.6111056367416, 0.08299685083337408]
var start = document.getElementById("map-txt").value; //data type string
start[0]
会为您5
而不是51.6111056367416
。
希望它会有所帮助,
答案 1 :(得分:-2)
使用trim函数的值为ajax调用的输入准备一个数组,如下所示:
var test=document.getElementById("map-txt").value.trim(',');
答案 2 :(得分:-2)
我所要做的就是:
var data = document.getElementById("map-txt").value;
var start = eval("[" + data + "]");