2013-10-10 39 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()(例如),看看你是否有一些空值或類似的東西。

我相信這種方法可以幫助你。