2016-09-20 20 views
1

私はCKeditorと1つのファイル入力要素を使用しています。そして、FormDataを使ってJquery Ajaxを渡しています。ここにJquery関数があります。私は$ TXTまたは直接の$ this - >入力 - >ポスト( "cmtWRITE")をエコーする場合、PHPの関数でJavascriptからPHPにスタイル属性を持つHTMLタグを渡す

function sample(){ 
    var cmtWRITE=CKEDITOR.instances['cmtWRITE'].getData(); 
    var vpb_files = document.getElementById('vpb-data-file').files; 
    var vpb_data = new FormData(); 

    $.each(storedFiles, function(keys, values) 
    { 
     vpb_data.append(keys, values); 
    }); 
    vpb_data.append('cmtWRITE', cmtWRITE); 
    console.log(cmtWRITE); // here just for confirmation 
    for (var pair of vpb_data.entries()) { 
     console.log("### "+pair[0]+ ', ' + pair[1]); // here just for confirmation 
    } 
    $.ajax({ 
     url: base_url+'aaa/xxxx', 
     type: 'POST', 
     data: vpb_data, 
     cache: false, 
     processData: false, 
     contentType: false, 
     dataType : 'html', 
     beforeSend: function() 
     { 
      //doing some process 
     }, 
     success: function(response) 
     { 
      //doing response 
     }, 
     error: 
     function(e){ 
      console.log('Error while request..'+JSON.stringify(e)); 
     } 
    }); 
} 

$txt=$this->input->post("cmtWRITE"); 

して値を取得し、それが印刷のように:

<p>Okay<em> </em><span [removed]>Noted</span></p> 

が、コンソールに実際の値は

<p>Okay<em> </em><span style='color:#ff0000'>Noted</span></p> 

である彼女私はCKエディタを通してフォント色を加えました。しかし、PHP側で[削除]を取得すると、フォントにスタイルが追加されません。 ここに私のckeditorのInit

CKEDITOR.replace("cmtWRITE", { 
    // Define the toolbar groups as it is a more accessible solution. 
    toolbarGroups: [ 
    {"name":"basicstyles","groups":["basicstyles"]}, 
    {"name":"links","groups":["links"]}, 
    {"name":"paragraph","groups":["list","blocks"]}, 
    {"name":"insert","groups":["smiley"]}, 
    {"name":"styles","groups":["TextColor"]}, 
    {"name":"colors","groups":["TextColor"]} 
    ], 
    // Remove the redundant buttons from toolbar groups defined above. 
    removeButtons: 'Strike,Subscript,Superscript,Anchor,Specialchar,Image,Source,About,Flash,Table,SpecialChar,Iframe,HorizontalRule,PageBreak', 
    height:'100px' 
    //removePlugins: 'clipboard', 
}); 

ありがとうございます。このうちから私を助けてください。

+0

スタイルがワイヤを介して送信されていることを確認するためにネットワークモニタを確認しましたか?もしそうであれば、入力オブジェクトはユーザーからのHTMLをサニタイズしていますか? –

+0

あなたは@元を得ませんでした – Gopalakrishnan

答えて

1

CodeIgniterは入力を前処理(サニタイズ)します。私はCI_Input.post$xss_cleanパラメータがストリッピング属性であると推測しています。お試しください

$txt=$this->input->post("cmtWRITE", FALSE); 
+0

はいあなたは正しいです。ありがとうございました – Gopalakrishnan

関連する問題