replace()标记在javascript中不起作用

replace()标记在javascript中不起作用,javascript,php,sql,ajax,database,Javascript,Php,Sql,Ajax,Database,我有一个数据库,目前在表中使用内联编辑 第一个问题是格式化文本的粘贴,但似乎这个问题在这个脚本中被修复为90%: <script type="text/javascript"> var _onPaste_StripFormatting_IEPaste = false; function OnPaste_StripFormatting(elem, e) { if (e.orig

我有一个数据库,目前在表中使用内联编辑 第一个问题是格式化文本的粘贴,但似乎这个问题在这个脚本中被修复为90%:

<script type="text/javascript">

                var _onPaste_StripFormatting_IEPaste = false;

                function OnPaste_StripFormatting(elem, e) {

                    if (e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData) {
                        e.preventDefault();
                        var text = e.originalEvent.clipboardData.getData('text/plain');
                        window.document.execCommand('insertText', false, text);
                    }
                    else if (e.clipboardData && e.clipboardData.getData) {
                        e.preventDefault();
                        var text = e.clipboardData.getData('text/plain');
                        window.document.execCommand('insertText', false, text);
                    }
                    else if (window.clipboardData && window.clipboardData.getData) {
                        // Stop stack overflow
                        if (!_onPaste_StripFormatting_IEPaste) {
                            _onPaste_StripFormatting_IEPaste = true;
                            e.preventDefault();
                            window.document.execCommand('ms-pasteTextOnly', false);
                        }
                        _onPaste_StripFormatting_IEPaste = false;
                    }

                }

    </script>
我正在尝试: 新组件为
text=text.replace(“,”)

但什么都没有

脚本删除了标记,但保留了导致sql ajax失败的

这是因为您忽略了正确地对插入到查询字符串中的参数值进行URL编码


在前面的值上使用
encodeURIComponent

最后的问题是编码,正如CBroe所说

这里是ajax,它使它工作

function saveToDatabase(editableObj,column,id) {
            $(editableObj).css("background","#12ff65 url(loaderIcon.gif) no-repeat right");
            var editxx = encodeURIComponent(editableObj.innerHTML);
            $.ajax({
                url: "saveedit.php",
                type: "POST",
                data:"column="+column+"&editval="+editxx+"&id="+id,
                success: function(data){
                    $(editableObj).css("background","#FDFDFD");
                }        
           });
        }

我有一个尝试,但返回我的值与%3%2等,保存后正确显示它,除了中断消失“但返回我的值与%3%2等”-是的,这就是URL百分比编码。“保存后正确地显示它,除了断开的dissapear”-这应该与URL编码无关,但更可能是与如何输出数据有关的问题。但是,如果你想知道这一点,你需要更具体地说明你在这里的实际意思。@pete:不,URL编码不必反转-在你访问PHP中的参数值时,这种情况已经发生了。不,完全是错误的位置。我说的是您的AJAX请求,即您将值放入URL上下文(通过将它们插入查询字符串)的位置,因此您必须首先对值进行正确的URL编码。在CSS中,脚本中隐藏的nbsp在第一行之后甚至没有替换第一行nbsp。从CSS粘贴文本,有隐藏的
<script>
        function showEdit(editableObj) {
            $(editableObj).css("background","#FFF");
        } 

        function saveToDatabase(editableObj,column,id) {
            $(editableObj).css("background","#12ff65 url(loaderIcon.gif) no-repeat right");
            $.ajax({
                url: "saveedit.php",
                type: "POST",
                data:"column="+column+"&editval="+editableObj.innerHTML+"&id="+id,
                success: function(data){
                    $(editableObj).css("background","#FDFDFD");
                }        
           });
        }
        </script>
var _onPaste_StripFormatting_IEPaste = false;

                function OnPaste_StripFormatting(elem, e) {

                    if (e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData) {
                        e.preventDefault();
                        var text = e.originalEvent.clipboardData.getData('text/plain');
                        string text = text;
                        text = text.replace("&nbsp"," ");
                        window.document.execCommand('insertText', false, text);
                    }
                    else if (e.clipboardData && e.clipboardData.getData) {
                        e.preventDefault();
                        var text = e.clipboardData.getData('text/plain');
                        string text = text;
                        text = text.replace("&nbsp"," ");
                        window.document.execCommand('insertText', false, text);
                    }
                    else if (window.clipboardData && window.clipboardData.getData) {
                        // Stop stack overflow
                        if (!_onPaste_StripFormatting_IEPaste) {
                            _onPaste_StripFormatting_IEPaste = true;
                            e.preventDefault();
                            window.document.execCommand('ms-pasteTextOnly', false);
                        }
                        _onPaste_StripFormatting_IEPaste = false;
                    }

                }
function saveToDatabase(editableObj,column,id) {
            $(editableObj).css("background","#12ff65 url(loaderIcon.gif) no-repeat right");
            var editxx = encodeURIComponent(editableObj.innerHTML);
            $.ajax({
                url: "saveedit.php",
                type: "POST",
                data:"column="+column+"&editval="+editxx+"&id="+id,
                success: function(data){
                    $(editableObj).css("background","#FDFDFD");
                }        
           });
        }