2011-04-20 29 views
2

我有一個奇怪的問題。 我有一個簡單的功能來打開彈出式信息關於一個引腳(通過點擊該鏈接與該PIN)Javascript的問題 - 沒有通過字符串與前導'0'正確字符串

它適用於某些引腳,但將其他人轉換爲不同的數字。

例如通過 '033604' 打開 http://mysite.com/pincheck.php?pin=014212

,但通過 '023960' 打開 http://mysite.com/pincheck.php?pin=023960(我需要什麼)

傳遞 '032765' 打開 http://mysite.com/pincheck.php?pin=013813

但通過「030309 ' 打開 http://mysite.com/pincheck.php?pin=030309(我需要的)

我已經嘗試了一堆針和它的所有隨機這樣的 - 無論是通過正確的PIN碼或將其轉換爲不同數量的

功能是

function win_open_pin(pin) { 
newwindow = window.open('pincheck.php?pin=' + '0' + pin + '' , 'popupwin', 'menubar=no,history=no,resizable=yes,scrollbars=yes,toolbar=no,width=650,height=300'); 
if (window.focus) {newwindow.focus()} 
} 

我曾嘗試使用pincheck.php ?引腳= 0' +引腳 並沒有嘗試銷=的toString(PIN)的功能 - 沒有用

通話也很簡單

<a href=\"javascript:win_open_pin($pin)\">$pin</a> 

PHP中的$ pin變量取自db並且是一個字符串,我甚至(string)鑄造以防萬一。 這似乎是js問題,因爲我從來沒有像用php這樣的問題。

我沒有看到任何押韻或原因。希望有人能指出我正確的方向來解決這個問題。 謝謝。

+1

當您在頁面上執行「查看源代碼」時,該標籤的外觀如何?請注意,無論在PHP中的「$ pin」的數據類型,如果你把它放到那個不帶引號的函數調用中,那麼JavaScript會認爲它是一個數字...... – Pointy 2011-04-20 18:38:14

回答

3

我認爲它與自動int轉換的問題。 如:

parseInt("033604", 10) //returns 33604 

parseInt("033604") //returns 14212 - Octal 

更改錨元素標記到以下(注意周圍$銷單引號):

<a href=\"javascript:win_open_pin('$pin')\">$pin</a> 
+0

謝謝,它確實修復了它,以前的答案几乎相同 – 2011-04-20 18:51:24

1

DEC 013813 =華僑城032765 的Javascript假定數量八路如果它開始領先的零。 Description。在$ pin周圍添加引號應該可以解決您的問題。

+0

謝謝,它確實解決了它。 – 2011-04-20 18:50:53