Home  >  Article  >  Backend Development  >  Detailed explanation of ajax and php response process in thinkphp, thinkphpajax_PHP tutorial

Detailed explanation of ajax and php response process in thinkphp, thinkphpajax_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:12:08709browse

Detailed explanation of ajax and php response process in thinkphp, thinkphpajax

This article analyzes the ajax and php response process in thinkphp through examples. Share it with everyone for your reference. The specific analysis is as follows:

Generally delete the content (links) you don’t like in the search results of the front page, because the programming framework of the entire website is thinkphp, which uses ajax in js to respond to the page and calls the backend php interface to implement the frontend and backend. Simultaneous update of database.

The first thing we need to do is to add a text "Delete" to the front page. You can add it like this:

Copy code The code is as follows:

The meaning of the above html code is to add a href for deletion. This href is a js function, similar to the function of a hyperlink. Of course, novices like me will have doubts at the beginning. Our usual hyperlinks That's not the case. There are a lot of javascript:void(0) in the web page. How does the program know that after the user clicks delete, it will respond to its real corresponding js function? Don’t worry, this is why tags like id and class are added for deletion. I believe you will understand after I publish the code in js. The code is as follows:

Copy code The code is as follows:
jQuery(".list a.delete").click(function(){
If(confirm("Are you sure you want to delete it?")){
                    var _this=this;
              var id = jQuery(_this).attr("id");
jQuery.ajax({
Url: '/search/index.php/jason/delete?',
                      data: {'id':id},
                       dataType: 'json',
Success: function(data){
                        var del = data.del;
If(del == 1){//Delete successfully
jQuery("#"+id).parents(".list").remove();
                                  }else{//Deletion failed
alert("Deletion failed");
                                                                                                          }                  }
                });
            }
});
Look at the head of the function: jQuery(".list a.delete").click(). The tag after jQuery is very important. This ensures that jquery can accurately respond to the "position" of the user's click on the page. Add The event is click(), add the code to respond to the event in click: var id = jQuery(_this).attr("id"); get the id corresponding to a, because this id is the link id used when we delete the database , of course, this direct clear text method is not good, here we just introduce the entire response process. Call ajax to run the entire process asynchronously. We have set up js to accept json strings. There should be many ways here. I have not tried it. If you are interested, you can try it yourself. /Search/index.php/Jason/delete? This sentence is the interface for js to request php. The code used by the php interface is as follows:
Pay attention to the path of ajax when seeking the php interface, that is, the delete function must be placed in JasonAction.class.php. This example must be like this:


Copy code The code is as follows:
public function delete(){
If($this->isGet()){
                $userId = session("uid");//User login
If(!empty($userId)){
                     $a = M('***');
$id = $this->_get('id');
                   $result=$a->where("id=$id")->delete();//Delete
If($result > 0){
                              $arr = array("del"=>'1');
                                                                                                                                            $arr = array("del"=>'0');
                                                                                                                                                       $json_str = json_encode($arr);
echo $json_str;//Return to js
                                                                                                                                                                                                                                              }

I believe everyone is familiar with the above code. The entire process is configured within the thinkphp framework.

var del = data.del; This sentence accepts the value of the key del in the json string returned by the php code, and then updates and responds to the page in the foreground.

Copy code

The code is as follows:if(del == 1){//Delete successfully jQuery("#"+id).parents(".list").remove();//This sentence means that after the background deletion is successful, the corresponding div will be deleted directly in the foreground, so that the performance will be very fast, no need Re-extract background data to the front-end page, }else{//Deletion failed
alert("Deletion failed");
}

The entire response process is like this. As for effect optimization, it is a matter of optimization and refinement. Later, my colleagues told me about another dynamic effect of removing the response link at the front desk:

Coming soon:

Copy code

The code is as follows:jQuery("#"+id).parents(".list").remove( );replaced with:
Copy code
The code is as follows:jQuery("#"+id).parents(".list").slideUp("slow", function (){ jQuery(this).remove(); });
You might as well give it a try and the effect is very good. Well, the response process has been recorded. It is just my own personal opinion and understanding.

I hope this article will be helpful to everyone’s PHP programming based on the ThinkPHP framework.

http://www.bkjia.com/PHPjc/923905.html

www.bkjia.com

http: //www.bkjia.com/PHPjc/923905.htmlTechArticleDetailed explanation of the ajax and php response process in thinkphp, thinkphpajax This article analyzes the ajax and php response process in thinkphp with examples. Share it with everyone for your reference. The specific analysis is as follows: Generally, the front desk...
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