2

嗨,我使用 ajax 脚本来获取var new_sample_data. 在我的 .php 中,我包含了第二个 javascript 文件。我还需要该变量new_sample_data来显示工具提示。

第一个javascript文件:

 $.ajax({ 
        type: "POST",                                    
        url: '../assets/includes/geodata1.php',
        data: {datum1: Date.today().add({days: -29}).toString('yyyy-MM-dd'), datum2: Date.today().toString('yyyy-MM-dd')},
        dataType: 'json',
        success: function(data)
        {
        var new_sample_data = data;

但是我所做的任何事情都没有从var new_sample_data第二个 javascript 文件中获取值。Allways 0. 我尝试var new_sample_data = "de":"4"在 if(params.showTooltip) 中设置手动,它适用于手动值。但我没有发现我的错误:-)

来自第二个 java 脚本文件的代码:

if (params.showTooltip) {
          map.label.text(mapData.pathes[code].name + " - Öffnungen: " + sample_data[code]);
          jQuery(params.container).trigger(labelShowEvent, [map.label, code]);
4

2 回答 2

2

听起来你有一个范围问题。
您只需var new_sample_data在任何函数之外定义一次,以使其成为全局(其他函数可访问)。

var new_sample_data;在您的开始标签之后添加并从现在的位置<script>删除单词。var

在您的第二个文件中,我没有看到名为 的变量new_sample_data,只是sample_data. 它也可能是一个错字问题吗?

于 2013-07-25T20:30:49.343 回答
0

要创建全局变量,您可以使用以下命令:

window.new_sample_data = data;

或在函数范围之外使用 var 初始化变量,例如在 js 文件的顶部。

不过,您也可能遇到时间问题,因为您的变量在回调中。如果要访问 ajax 请求返回的数据,则必须确保在服务器返回数据之前不要尝试读取它。将引用放在后面的文件中是不够的,因为设置变量的函数将在所有初始同步操作完成后被同步调用。

于 2013-07-25T20:32:15.073 回答