2013-11-26 21 views
0

我使用oracle rowid作爲參考來更新所選行。 它運行平穩幾個月,直到最近有一些問題 腳本如下。Javascript not recongizing由oracle生成的保留字符rowid

update(rowid, value){ 
$.ajax({ 
    url: action.php, 
    dataType: "json", 
    data: { 
    value : value, 
    ROWID : rowid 
    }, 
    success: function(data){ 
    //update whatever 
    } 
    }); 
} 
在action.php的

只是db表的更新腳本

update table set column = '".$_get['value']."' where rowid = '".$_get['ROWID']."' 

當這個ROWID值輸入到腳本AAAay1AAEAABw6jAA/ JavaScript不能接受/或+字符這是問題開始由oracle rowid生成。

Webpage error details 

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; InfoPath.2; .NET4.0C; .NET4.0E) 
Timestamp: Tue, 26 Nov 2013 00:13:48 UTC 


Message: Syntax error, unrecognized expression: #AAAay1AAEAABw6jAA/ 
Line: 4680 
Char: 2 
Code: 0 
URI: http://192.168.2.2/project/include/js/jquery-1.8.3.js 

由於無法控制rowid值,因此無法更改oracle rowid。 是不可能的,我做的替換值的字符串,使JavaScript讀取字符即。從\到\如果我替換它的rowid值將成爲AAAay1AAEAABw6jAA //這也不起作用。

如何從javascript保留字符轉義?

+0

看起來像'#AAAay1AAEAABw6jAA /'是一個字符串文字,它必須包含在''''中,就像''#AAAay1AAEAABw6jAA /'' –

+0

的含義?你能告訴我一個例子嗎? – user1761160

+0

您將列拼寫爲「colunm」 - 這只是您的問題中的拼寫錯誤嗎? – Matt

回答

0

有關使用encodeURIComponent方法和decodeURIComponent

var x = "#AAAay1AAEAABw6jAA/";    
var txt=encodeURIComponent(x) 
0
data: { 
    value : value, // replace "value :" with "value:" 
    ROWID : rowid // replace "ROWID :" with "ROWID:" 
    }, 

因爲冒號前的空間如何,它被解釋冒號作爲變量的左側的「價值」和「ROWID」,而比符號。只需刪除冒號前的空格。