您好我使用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;
但我做的任何事情都没有从第二个javascript文件中的var new_sample_data
获取值。永远0。
我尝试在if(params.showTooltip)中设置手动var new_sample_data = "de":"4"
,它适用于手动值。但是我找不到我的错误: - )
来自第二个java scrpit文件的代码:
if (params.showTooltip) {
map.label.text(mapData.pathes[code].name + " - Öffnungen: " + sample_data[code]);
jQuery(params.container).trigger(labelShowEvent, [map.label, code]);
答案 0 :(得分:2)
听起来你有范围问题
您需要在任何函数之外定义var new_sample_data
一次以使其成为全局(可由其他函数访问)。
在var new_sample_data;
开头标记后添加<script>
,然后从现在的位置删除var
一词。
在您的第二个文件中,我没有看到名为new_sample_data
的变量,只有sample_data
。这可能也是一个错字问题吗?
答案 1 :(得分:0)
要创建全局变量,您可以使用:
window.new_sample_data = data;
或在函数范围外用var初始化变量,例如在js文件的顶部。
虽然您的变量处于回调状态,但您可能也会遇到计时问题。如果要访问ajax请求返回的数据,则必须确保在服务器返回数据之前不要尝试读取它。将引用放在稍后的文件中是不够的,因为在完成所有初始同步操作之后,将同步调用设置变量的函数。