2013-04-03 45 views
0

保存到数据库是好的。Tinymce Editor从数据库检索数据问题[striping backslash]

var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 

从数据库中检索我的反斜杠。

var emailReg = /^([w-.][email protected]([w-]+.)+[w-]{2,4})?$/; 

我的工作,我用的项目。 我有一个表格验证电子邮件地址,如果没问题,然后保存到数据库。 我正在使用Tinymce textarea编辑器,我将我的数据保存到这个数据库,我的页面显示ok。 问题是当我将数据返回到textarea时,由于缺少反斜杠,验证不起作用。

我不确定它是否有问题CodeIgniterTinymce

<script type="text/javascript"> 
window.addEvent('domready', function(){ 
    var submit = $('submit'); 
    var cancel = $('cancel'); 

    if(submit) 
    { 
     submit.addEvent('click', function(){ 

      $('loading').set('html', '<img src="/v5d/system/application/views/images/loading-green.gif" alt="" /> &nbsp; Processing. Please wait...'); 
      $('loading').set('styles', {'display': 'block'}); 

      var purl = $('purl').get('value'); 
      var formid = $('formid').get('value'); 

      var elementProperty = new Array(); 
      var elcount = 0; 
      var elname='', elvalue=''; 
      var eldetail; 
      var elreq = ''; 
      var valerror = 0; 
      var valerror1 = 0; 

      var formelements = $('survey').getChildren('input'); 

          // BACKSLASH ISSUE 
          var emailReg = /^([w-.][email protected]([w-]+.)+[w-]{2,4})?$/; 


      formelements.each(function(item, index){ 
       eldetail = formelements[index]; 
       elname = eldetail.get('name'); 
       if(eldetail.get('type') == 'text') 
       { 
        elvalue = eldetail.get('value'); 
        elreq = eldetail.get('class'); 
        if(elreq == 'required' && elvalue == '') 
        { 
         valerror++; 
        } 
        else if(elreq == 'required' && !emailReg.test(elvalue)) 
        { 
         valerror1++; 
        } 
       } 
       else if(eldetail.get('type') == 'radio') 
       { 
        var radioLength = eldetail.length; 
        if (radioLength == undefined) { 
         if (eldetail.checked) { 
          elvalue = eldetail.value; 
         } 
        } 
        for(var i = 0; i < radioLength; i++) { 
         if(eldetail[i].checked) { 
          elvalue = eldetail[i].value; 
         } 
        } 
       } 
       else if(eldetail.get('type') == 'checkbox') 
       { 
        elvalue = ''; 
        var radioLength = eldetail.length; 
        if (radioLength == undefined) { 
         if (eldetail.checked) { 
          elvalue = eldetail.value; 
         } 
        } 
        for(var i = 0; i < radioLength; i++) { 
         if(eldetail[i].checked) { 
          elvalue += ',' + eldetail[i].value; 
         } 
        } 
       } 
       elementProperty[elcount] = new itemstruct(elname, elvalue); 
       elcount++; 
      }); 

      formelements = $('survey').getChildren('textarea'); 
      formelements.each(function(item, index){ 
       eldetail = formelements[index]; 
       elname = eldetail.get('name'); 
       elvalue = eldetail.value; 
       elreq = eldetail.get('class'); 
       if(elreq == 'required' && elvalue == '') 
       { 
        valerror++; 
       } 
       elementProperty[elcount] = new itemstruct(elname, elvalue); 
       elcount++; 
      }); 

      formelements = $('survey').getChildren('select'); 
      formelements.each(function(item, index){ 
       eldetail = formelements[index]; 
       elname = eldetail.get('name'); 
       elvalue = eldetail.get('value'); 
       elementProperty[elcount] = new itemstruct(elname, elvalue); 
       elcount++; 
      }); 


      var surveysubmit = new Request({ 
       url: '/v5d/index.php/ajax/submitSurvey', 
       method: 'post', 
       data:{ 
        'elementproperty': elementProperty, 
        'formid': formid, 
        'purl': purl, 
        'state': 'final' 
       }, 

       onComplete: function(responseText){ 
        if (!responseText || responseText == '' || responseText == false || responseText == 'FALSE') 
        { 
         $('loading').set('html', 'Error occured'); 
        } 
        else 
        { 
         $('loading').set('html', 'Form successfully submitted'); 
         //window.location.reload(); 
        } 
       } 
      }); 

      if (valerror == 0) 
      { 
       if (valerror1 != 0) 
       { 
       $('loading').set('html', 'Please right email.'); 
       } 
       else 
       { 
       surveysubmit.send(); 
       } 
      } 

      else 
      { 
       $('loading').set('html', 'Please fillup all required fields.'); 
      } 
     }); 
    } 

    if(cancel) 
    { 
     cancel.addEvent('click', function(){ 
      var choice = confirm('Sure want to leave the survey?'); 
      if(choice) 
      { 
       var purl = $('purl').get('value'); 
       var formid = $('formid').get('value'); 

       var elementProperty = new Array(); 
       var elcount = 0; 
       var elname='', elvalue=''; 
       var eldetail; 
       var elreq = ''; 
       var valerror = 0; 

       var formelements = $('survey').getChildren('input'); 

       formelements.each(function(item, index){ 
        eldetail = formelements[index]; 
        elname = eldetail.get('name'); 
        if(eldetail.get('type') == 'text') 
        { 
         elvalue = eldetail.get('value'); 
         elreq = eldetail.get('class'); 
        } 
        else if(eldetail.get('type') == 'radio') 
        { 
         var radioLength = eldetail.length; 
         if (radioLength == undefined) { 
          if (eldetail.checked) { 
           elvalue = eldetail.value; 
          } 
         } 
         for(var i = 0; i < radioLength; i++) { 
          if(eldetail[i].checked) { 
           elvalue = eldetail[i].value; 
          } 
         } 
        } 
        else if(eldetail.get('type') == 'checkbox') 
        { 
         elvalue = ''; 
         var radioLength = eldetail.length; 
         if (radioLength == undefined) { 
          if (eldetail.checked) { 
           elvalue = eldetail.value; 
          } 
         } 
         for(var i = 0; i < radioLength; i++) { 
          if(eldetail[i].checked) { 
           elvalue += ',' + eldetail[i].value; 
          } 
         } 
        } 
        elementProperty[elcount] = new itemstruct(elname, elvalue); 
        elcount++; 
       }); 

       formelements = $('survey').getChildren('textarea'); 
       formelements.each(function(item, index){ 
        eldetail = formelements[index]; 
        elname = eldetail.get('name'); 
        elvalue = eldetail.value; 
        elreq = eldetail.get('class'); 
        elementProperty[elcount] = new itemstruct(elname, elvalue); 
        elcount++; 
       }); 

       formelements = $('survey').getChildren('select'); 
       formelements.each(function(item, index){ 
        eldetail = formelements[index]; 
        elname = eldetail.get('name'); 
        elvalue = eldetail.get('value'); 
        elementProperty[elcount] = new itemstruct(elname, elvalue); 
        elcount++; 
       }); 


       var surveysubmit = new Request({ 
        url: '/v5d/index.php/ajax/submitSurvey', 
        method: 'post', 
        data:{ 
         'elementproperty': elementProperty, 
         'formid': formid, 
         'purl': purl, 
         'state': 'final' 
        }, 

        onComplete: function(responseText){ 
         if (!responseText || responseText == '' || responseText == false || responseText == 'FALSE') 
         { 
          $('loading').set('html', 'Error occured'); 
         } 
         else 
         { 
          $('loading').set('html', 'Form successfully submitted'); 
          //window.location.reload(); 
         } 
        } 
       }); 
       surveysubmit.send(); 

       window.location.href='/v5d/'+purl; 
      } 
     }); 
    } 
}); 

var itemstruct = function(elname, elvalue) 
{ 
    this.elname = elname; 
    this.elvalue = elvalue; 


} 

+0

为什么在发送之前没有在后端执行此操作? [php addslashes](http://php.net/manual/en/function.addslashes.php)|| [php stripslashes](http://php.net/manual/en/function.stripslashes.php) – Ohgodwhy

+0

一般来说,如果可以的话,我总是尽量保存用户数据,并且只能在检索时将其转换。但是我当然不知道你的mysql抽象层是否有足够的安全性来做到这一点...... – Dominik

回答

0

使用这种方法,你可以检索数据回从数据库TinyMCE的编辑器。

tinyMCE.activeEditor.setContent(data);