我使用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']."'当输入到脚本AAAay1AAEAABw6jAA/ Javascript中的这个rowid值不能接受由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无法更改oracle rowid,因为我无法控制rowid值。我不可能做替换字符串的值,以便javascript读取字符ie。从\到\,如果我替换它,rowid值将变成AAAay1AAEAABw6jAA//,这也不起作用。
如何从javascript保留字符中转义?
发布于 2013-11-26 13:38:55
使用encodeURIComponent和decodeURIComponent怎么样?
var x = "#AAAay1AAEAABw6jAA/";
var txt=encodeURIComponent(x)发布于 2013-11-27 05:49:24
data: {
value : value, // replace "value :" with "value:"
ROWID : rowid // replace "ROWID :" with "ROWID:"
},由于冒号前面的空格,它将冒号左侧的"value“和"ROWID”解释为变量,而不是符号。只要删除冒号前面的空格即可。
https://stackoverflow.com/questions/20206299
复制相似问题