繁体   English   中英

将用户指定的值获取到javascript文件中

[英]get user-specified values into javascript file

我有一个谷歌地图应用程序,其中在js文件(map.js)中定义了地图设置,如下所示:

function initialize() {
        var latlng = new google.maps.LatLng(42.133633, -11.469928);
        var myOptions = {
            zoom: 13,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            };
        map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

我的主页(index.php)调用此脚本。 我想让用户指定纬度,经度,缩放级别和地图类型。 为此,我创建了一个表单(setMap.htm),一个客户端验证脚本(setMap.js)和setMap.php,用于验证和清除用户输入。

但是,我不清楚如何将用户指定的值导入map.js。 我可以在map.js中使用ajax吗?

function loadData(){

    $.getJSON('setMap.php', . . . . ?

以及如何用此调用的结果替换函数initialize()中的硬编码值?

我还需要在setMap.php中进行ajax调用吗?

您可以通过多种方式进行操作。 您刚刚发布的一个: http : //api.jquery.com/jquery.getjson/

$.getJSON( "setMap.php", function( data ) { // Do something here });

您的setMap.php只需要返回有效的json数据。

您也可以在请求期间将数据直接回显为js值:echo'var = {some data}',但我认为这不是“不错”的解决方案。

另一种选择是:不使用服务器端部分。 只需使用JS从表单中获取数据,对其进行验证即可使用,而无需重新进行php处理(如果您不需要将其保存在某个地方,则实际上不需要在服务器端进行验证)

https://developers.google.com/maps/documentation/javascript/reference?csw=1您应该拥有

var map = google.maps.Map();
map.setOptions({your_options});

因此,您只需从表单中获取选项并在运行中修复地图选项,而无需重新加载页面或ajax请求。

// html
<input id="zoom" type="text" />

// js code
var map;
function initialize() {
        var latlng = new google.maps.LatLng(42.133633, -11.469928);
        var myOptions = {
            zoom: 13,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            };
        map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
}
function update() {
        var options = {};
        options.zoom = $('input#zoom').val();
        map.setOptions{options};
}

但是,求求您! 这只是未经测试的伪代码!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM