2017-06-02 13 views
0

ich Datenbank haben, die in Tabellen Erstes Problem mit einer Paste aus formatierten Text war, verwenden Sie Inline bearbeiten zur Zeit aber scheint, dass Problem bei 90% mit diesem Skript festgelegt wurde:replace() Tag funktionierte nicht in Javascript

<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> 

Aussehen Meine pHP-Code wie folgt aus:

<td contenteditable='true' onblur=saveToDatabase(this,'titleeng','".$data['id']."') onClick='showEdit(this);' onpaste='OnPaste_StripFormatting(this, event);'>".$data['titleeng']."</td> 

Das Skript entfernt die Tags, lässt aber die &nbsp;, dass meine sQL ajax zum Scheitern verursacht

ist hier Ajax-Skript:

<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> 

ich dies versuchen: Neue Komponenten text = text.replace("&nbsp"," ");

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; 
        } 

       } 

Aber nichts

+0

https://jsfiddle.net/subsa/79dr2grn/ Arbeit macht nicht einmal ersten nbsp ersetzen Hat. Einfügen von Text aus CSS, dort sind nbsp versteckt –

Antwort

1

Das Skript entfernt die Tags sind, lässt aber die &nbsp;, dass verursacht meine sql ajax zum fehler

Das liegt daran, dass Sie es versäumt haben, die Parameterwerte, die Sie in die Abfragezeichenfolge einfügen, korrekt zu URL-codieren.

Verwenden Sie die Werte für die Werte zuvor.

+0

Ich habe es versucht, aber gib mir Wert mit% 3% 2 usw., nach dem Speichern zeigen Sie es richtig, außer die Brüche dissapear –

+0

_ "aber geben Sie mir Wert mit% 3% 2 usw." _ - ja, das ist, was URL Prozent Codierung _is_ ist. _ "nach dem Speichern zeigen Sie es richtig, mit Ausnahme der Brüche verschwinden" _ - das sollte nichts mit der URL-Kodierung zu tun haben, ist aber eher ein Problem bei der Ausgabe der Daten. Aber Sie müssten genauer bestimmen, was Sie hier wirklich meinen, wenn Sie Hilfe dabei haben wollen. – CBroe

+0

@pete: Nein, die URL-Kodierung muss nicht umgekehrt werden - das ist bereits geschehen, als Sie auf die Parameterwerte in PHP zugreifen. – CBroe

0

schließlich war Problem mit Codierung als CBroe sagt

hier die Ajax ist, dass es

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"); 
       }   
      }); 
     } 
Verwandte Themen