2012-03-06 85 views
0

我在解析PHP到JavaScript數組中的數據時遇到了一些小問題。以字符串形式傳遞PHP數據而不是整數

我的JavaScript認爲數據是一個字符串,而不是一個整數。導致數學錯誤的答案。

我JS數學是這樣的:

abposx = data[d]["x"]+offset_x; 

如果數據[d] [ 「X」]爲20和offset_x爲0

答案變爲200代替20.

我想知道如何讓JavaScript使用數據[d] [「x」]作爲數字而不是字符串?

我的PHP的這JIST:

$get = mysql_query("SELECT x,y,sid FROM $table WHERE uid='1'") or die(mysql_error()); 
while($row = mysql_fetch_assoc($get)) { 
    $data[] = $row; 
} 
$data = json_encode($data); 

JSON的編碼是這樣的:

[{"x":"283","y":"99","sid":"1"}] 

希望能幫到你!

+0

難道你不能把它作爲一個int嗎? '(int)data [d] [「x」] + offset_x;' – 2012-03-06 21:17:25

+0

您可以發佈PHP設置值的位置嗎?你在用阿賈克斯嗎? – bfavaretto 2012-03-06 21:18:08

+0

不,我試過,但我得到意外的標識符作爲錯誤。 – Sir 2012-03-06 21:18:14

回答

3
abposx = parseInt(data[d]["x"], 10) + offset_x; 
+0

編輯:這工作! :) 謝謝! – Sir 2012-03-06 21:20:33

+0

你可以檢查'data [d] [「x」]'的值嗎?它是什麼?除非它不是一個數字,否則這段代碼應該可以工作。 – 2012-03-06 21:21:49

+0

是的,它的工作,我忘了,10:P感謝您的答覆! – Sir 2012-03-06 21:24:25

0

嘗試使用類型轉換:

var absData = data[d]["x"] - 0; 
abposx = absData+offset_x; 
+0

意外的標識符錯誤與以前相同 – Sir 2012-03-06 21:21:06

+1

這應該是JavaScript代碼,JavaScript中沒有類型轉換,也不是'int'類型... – 2012-03-06 21:22:27

+0

好點,我的答案已得到糾正。 – 2012-03-06 21:24:49

0

使用parseInt函數(字符串),它返回字符串作爲一個整數,如果你想做到這一點phpside用作

+0

不要忘記基數,'parseInt(string,10)' – 2012-03-06 21:20:04

+0

是的,我試過沒有工作,雖然 – Sir 2012-03-06 21:20:49

1

parseInt函數可以使用javascriptside, ;

while($row = mysql_fetch_assoc($get)) { 
    $data[] = array_map('intval',$row); 
} 
相關問題