2013-10-10 37 views
0

我想在URL中添加变量(整数)在Ajax请求中使用的变量:传递给阿贾克斯URL

在我的HTML,我有:

<span class="user">15</span> 

而脚本:

$('#fileupload').click(function() { 
    $(this).fileupload({ 
     dataType: 'json', 
     done: function (e, data) { 
      $.each(data.result.files, function (index, file) { 
       if (file.error != null) { 
        $console.text(file.error); 
       } 
       var user = parseInt($(".user").text(), 10); 
       //Open the uploaded file// 
       $.ajax({ 
        url: "files/" + user + '/' + file.name, 
        dataType: 'json', 
        type: 'GET', 
        success: function (res) { 
         handsontable.loadData(res.data); 
         $console.text('Loaded file: ' + file.name); 
        } 
       }); 
      }); 
     } 
    }); 
}); 

然而,变量(15)没有被传递到URL,我得到的错误:

/files/NaN/data.json 

我知道我在做一些愚蠢的事情,到处搜寻,但它是什么?

+2

页面上是否有多个'.user'元素? – Barmar

+0

我想那是问题所在,我用别的东西替换了名字,它就OK了!谢谢! –

回答

2

你不必真正解析它,因为你只是把它放回到一个字符串。尝试删除解析int,然后CONSOL记录用户变量的值。

此外,也许你有很多用户元素?控制台日志$(“。user”)来查看你是否得到一个数组。

+0

另外,请确保你只有一个对象,其类型为'user',否则,试试'$('。user')[0]' – Dementic

+0

没错:太多的用户似乎是这个问题。另外,parseint并不是真的有必要,谢谢! –

1

它看起来像解析失败,你得到NaN(非数字)。

你可以验证输入字符串parseInt看起来像一个数字吗?

另外,您将user转换回字符串。你真的需要parseInt吗?

0

我建议你尝试在Chrome控制台(F12)中运行$('.user').text()(例如),看看你是否有一些空值或类似的东西。

我相信这种方法可以帮助你。