Analysis on embedding thinkphp3.2 into Baidu editor ueditor

不言
Release: 2023-03-30 18:48:01
Original
1812 people have browsed it

This article mainly introduces the example code of thinkphp3.2 embedded in Baidu editor ueditor. It has certain reference value. Those who are interested can learn about it.

This article introduces the example code of thinkphp3.2 embedded in Baidu editor ueditor. , share it with everyone, I hope this article will be helpful to you

Due to typesetting requirements, many times we need to embed a rich text editor and output text content with html tags. 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 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>
Copy after login

3. Add the script at the end of the html to configure the text box initial value, 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>
Copy after login

4. Usually when we add a button to the form, all the data in the form will be submitted by default. , but my project also involves image uploading. I use ajax asynchronous submission here. So the question is, can we get the required value through the value of ("#intro_detail").val() in jq? As for the submitted value, the answer is no. My solution is to add a hidden input under the textarea. We use the method provided by ueditor to get the value inside and assign it to the input, so that it can 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" >
Copy after login

ajax submission,

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

put the labeled input in the text box together with single quotes, and save Send it to the input together. As for why single quotes are used, otherwise it will not be sent and 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("参数错误");
            }
          }
        });
Copy after login

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);
Copy after login

6. When we get the data to the view, we put 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;);
Copy after login

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

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

7. In fact It's not difficult. I'm just here to provide you with some ideas and you can discuss it more. I'm a novice too.

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

Analysis on the callback problem of the thinkPHP framework docking with Alipay’s instant payment interface

Based on Thinkphp and jquery Realize the function of ajax multi-selection, reverse selection and delete data

The above is the detailed content of Analysis on embedding thinkphp3.2 into Baidu editor ueditor. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template