2013-09-24 59 views
0

我使用codeigniter和mysql进行web开发。我还使用了一个名为tinymce编辑器的富文本编辑器。我的问题是我已经在textarea中应用了文本编辑器。当我应用标题和段落标记等时,它们都可以,但是当我使用“居中”文本时,它使用了CSS的“样式”标签,如style =“text-align:center;”但是当我将它插入到数据库中时,它不包含双引号“”,它将插入的内容只是样式=,它不包含“”并在其中。使用codeigniter无法在数据库中插入双引号

The code below is used to insert data from the form including the textarea that was applied with the tinymce text-editor. 

$("#send_email").click(function() 
    { 


    $("#myModal_loader").modal('show'); 
    var email_add = $("#email").val(); 
    var email_subject = $("#email_subject").val(); 
    var email_message = tinymce.get('email_message').getContent(); 


    var postData = { 
         'email_add':email_add, 
         'email_subject':email_subject, 
         'email_message':email_message 
        }; 

    $.ajax({ 
     type: "POST", 
     url: "<?php echo base_url();?>students/send_email", 
     dataType: 'json', 
     data: postData, 
     success: function(data) 
     { 
     $("#myModal_loader").modal('hide'); 
     $("#myModal_confirm").modal('show'); 

     $("#email_subject").val(""); 
     $("#email_message").val(""); 

     console.log(); 


     } 



    }); 
    $("html, body").animate({ scrollTop: 0 }, 600); 

    return false; 

    }); 
    }); 
    </script> 

控制器

 $this->course_booking_model->insert_email_data 
     ($stored_email,$tennant_email,$email_subject,$email_message); 

模型

function insert_email_data($email_add,$tennant_email,$email_subject,$email_message)   { 

    for($i=0;$i<count($email_add);$i++){ 

    $data = array(
    'email_add'  => $email_add[$i], 
    'tennant_email' => $tennant_email, 
    'email_subject' => $email_subject, 
    'email_message' => $email_message 
    ); 


     $this->db->set('time_sent','NOW()',FALSE); 
     $this->db->insert('email', $data); 
       } 

       } 
+0

哪个字段是问题? 'email_message'? – trrrrrrm

+0

电子邮件是这里的问题,因为它有html标签和css内联样式,其中包含双引号,如style =“text-align:center”。没有读取等号后面的引号。 –

+0

查看下面的答案。 – trrrrrrm

回答

0

在这里的问题是,从textarea的格式化的值被从视图中通过使用Ajax是因为它避开了在代码的双引号它不读取所有的HTML标签到控制器,并通过不完整的HTML标签。

我所做的是在传递格式化值之前,我删除了双引号,并使用下面的代码替换了它。

var new_message = email_message.replace(/"/g, '\''); 

它解决了这个问题。