Home  >  Article  >  Backend Development  >  How to embed tp3 into Baidu editor ueditor?

How to embed tp3 into Baidu editor ueditor?

零下一度
零下一度Original
2017-07-16 16:36:142327browse

How to load Baidu ueditor editor and configure the method to share
It is actually very simple, but when reading the data, you need to use the htmlspecialchars_decode($str); function to escape it, otherwise it will be read There is a slight problem with the content, please see the details

Due to typesetting requirements, many times we need to embed a rich text editor and output text content with the html tag. Because I recently worked on a backend management system that requires editing the text content so that it can output text with html tags and save it to the server. The client sends a request to get the tagged text from the server. I use ueditor,

1. First we go here www.jb51.net/codes/56667.html to download the PHP version utf version.

Put it in the Public directory.

2. When we use the rich text editor on the view, we usually add textarea to the form,


<form>  
<p><textarea name="intro_detail" id="intro_detail" cols="30" rows="10"></textarea> </p>
</form>

3. Add the initial value of the script configuration text box at the end of the html, where PUBLIC is the path I configured in config


<script type="text/javascript" src="PUBLIC/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="PUBLIC/ueditor/ueditor.all.min.js"></script>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<script type="text/javascript" src="PUBLIC/ueditor/lang/zh-cn/zh-cn.js"></script>
<script type="text/javascript">
  UE.getEditor(&#39;intro_detail&#39;,{  //intro_detail为要编辑的textarea的id
    initialFrameWidth: 418,  //初始化宽度
    initialFrameHeight: 500,  //初始化高度
  });

</script>

4. Usually we When adding a button to the form, all the data in the form will be submitted by default. However, my project also involves image uploading. I use ajax asynchronous submission here. So the question is, can we pass it? The value of ("#intro_detail").val() in jq gets the value to be submitted. The answer is no. My solution is to add a hidden input under the textarea. We use the method provided by ueditor. Get the value inside and assign it to the input, and let it be submitted along with the form. In the controller, you can pass _POST('name of the form'), as follows:


 <p >  
<textarea name="intro_detail" id="intro_detail" cols="30" rows="10"></textarea>
</p>
 <input type="text" style="display: none" id="intro_detail1" name="intro_detail1" >

ajax submission,

The code is as follows:

$("#intro_detail1").val("&#39;"+UE.getEditor(&#39;intro_detail&#39;).getContent()+"&#39;");

Put together the labeled input in the text box with single quotes, save it in the input and send it over at the same time. Why use single quotes? Otherwise, if it cannot be sent, the tags will be automatically filtered out. We can just process the single quotes when getting the data out.


$.ajax({
          type: "POST",
          url: "<{:U(&#39;Admin/GameManager/Game/modGame&#39;)}>",
          dataType: &#39;json&#39;,
          processData: false,
          contentType: false,
          cache: false,
          data: formData,
          success:function(r){
            if(r.success){
              alert(&#39;编辑成功&#39;);
              window.location.reload();//重新刷新一次
              $(&#39;#user_dialog&#39;).modal(&#39;hide&#39;);
            }
            else{
              alert("参数错误");
            }
          }
        });

5. In the controller, you can use $_POST('name of the form') to get the data and write it into the database


$db = M(&#39;game&#39;);
    $data  = $db->create(I(&#39;post.&#39;));
    $data[&#39;intro_detail&#39;] = $_POST[&#39;intro_detail1&#39;];
    $db->add($data);

6. When we get the data to the view, we can just remove the single quotes


foreach($result as $key =>$value){    
      $result[$key][&#39;intro_detail&#39;]=str_replace("&#39;","",$result[$key][&#39;intro_detail&#39;]);//过滤单引号
    }
    $this->assign(&#39;game_list&#39;, $result);
    $this->display(&#39;&#39;);

$result is the sql statement I use The database content found, and intro_detail is the text content with labels and single quotes stored in the database


$user = M(&#39;game&#39;);
    $result = $user->field();

7. In fact, it is not difficult. I also provide you with the following ideas. , you can discuss more, I am also a novice.

The above is the detailed content of How to embed tp3 into Baidu editor ueditor?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn