Maison développement back-end tutoriel php 实习小结十二:Ajax的get函数使用实例

实习小结十二:Ajax的get函数使用实例

Jul 30, 2016 pm 01:30 PM
gt post this

好久没来写博客了,并不是懈怠了,而是最近在写一个Post文章管理的大module,由于php和zend没怎么学,所以花费了大概一周的时候,才实现了增删改查功能,最近在改进模块功能,因为那里面的代码量实在太大,具体的要想一想才能写博客,这次写的是针对修改文章状态,使用ajax实现的,以前一直不知道ajax的好处,这次具体使用了,才算知道了一些皮毛,接下来,进入正题。

首先贴一下ajax代码:

<code><span>script</span>><span>
$(<span><span>function</span><span>()</span> {</span>    $(<span>".post-list-table .check"</span>).click(<span><span>function</span><span>()</span> {</span><span>var</span> post_id = $(<span>this</span>).parent().attr(<span>"alt"</span>);
        <span>var</span> status = $(<span>this</span>).attr(<span>"alt"</span>);
        $.get(<span>"/post/operate/"</span>+ post_id +<span>"/?status="</span>+ status, <span><span>function</span><span>(ret)</span> {</span>
            console.log(ret);
            <span>if</span>(ret[<span>1</span>] == <span>1</span>) {
                $(<span>"table tbody .status-"</span>+ post_id).html(<span>"Published"</span>);
            } <span>else</span><span>if</span>(ret[<span>1</span>] == -<span>1</span>) {
                $(<span>"table tbody .status-"</span>+ post_id).html(<span>"Rejected"</span>);
            } <span>else</span> {
                $(<span>"table tbody .status-"</span>+ post_id).html(<span>"Draft"</span>);
            }
        });
    });

    $(<span>".post-list-table .delete"</span>).click(<span><span>function</span><span>()</span> {</span><span>if</span>(confirm(<span>'确认删除?'</span>)) {
            <span>var</span> url = $(<span>this</span>).attr(<span>'url'</span>);

            $.getJSON(url, <span><span>function</span><span>(ret)</span> {</span>console.log(ret);
                <span>if</span>(ret[<span>0</span>] == <span>true</span>) {
                    $(<span>'.delete[url="'</span>+url+<span>'"]'</span>).parents(<span>'tr'</span>).remove();
                }
            });
        }
    });
})
</span><span><span>script</span>></span></code>
Copier après la connexion

从代码看出来,实现的是更改状态和删除两个功能,分别来自不同的action,接下来贴controller里面的action。

<code><span>public</span><span><span>function</span><span>operateAction</span><span>()</span>
    {</span><span>if</span>(!<span>$this</span>->userHasPermission(<span>'ADMIN'</span>, <span>'EDIT_REVIEW'</span>))
        {
            <span>return</span><span>$this</span>->requirePermission(<span>'ADMIN'</span>, <span>'EDIT_REVIEW'</span>);
        }
        <span>$ret</span> = <span>false</span>;
        <span>$request</span> = <span>$this</span>->getRequest();

        <span>$log_table</span> = <span>$this</span>->getPostLogTable();

        <span>$user_service</span> = <span>$this</span>->getServiceLocator()->get(<span>'UserService'</span>);
        <span>$curr_user</span> = <span>$user_service</span>->getCurrentUser();

        <span>$post_id</span> = <span>$this</span>->params()->fromRoute(<span>'id'</span>, <span>null</span>);

        <span>$post</span> = <span>$this</span>->getPostTable()->getPostById(<span>$post_id</span>);

        <span>$from_status</span> = <span>$post</span>[<span>'post_status'</span>];

        <span>$status</span> = <span>$request</span>->getQuery(<span>'status'</span>, <span>null</span>);
        <span>$log_row</span> = <span>array</span>();
        <span>if</span> (!is_null(<span>$status</span>)) {

            <span>if</span>(<span>$post</span>[<span>'post_status'</span>] != <span>$status</span>) {
                <span>$ret</span> = <span>$this</span>->getPostTable()->checkStatus(<span>$post</span>[<span>'id'</span>], (int)<span>$status</span>);
                <span>//var_dump($ret);exit();</span><span>if</span> (<span>$ret</span>) {
                    <span>$log_row</span>[<span>'post_id'</span>] = <span>$post_id</span>;
                    <span>$log_row</span>[<span>'user_id'</span>] = <span>$curr_user</span>->id;
                    <span>$log_row</span>[<span>'user_name'</span>] = <span>$curr_user</span>->username; 
                    <span>$log_row</span>[<span>'date'</span>] = date(<span>'y-m-d'</span>,time());
                    <span>$log_row</span>[<span>'from_status'</span>] = <span>$from_status</span>;
                    <span>$log_row</span>[<span>'to_status'</span>] = <span>$status</span>;

                    <span>$log_table</span>->addRows(<span>$log_row</span>);
                }
            }
            <span>$ret</span> = <span>true</span>;
        }
        <span>$jsonModel</span> = <span>new</span> JsonModel(<span>array</span>(<span>$post_id</span>, <span>$ret</span> ? (int)<span>$status</span> : <span>$ret</span>));
        <span>//var_dump($jsonModel);exit();</span><span>return</span><span>$jsonModel</span>;
    }

    <span>public</span><span><span>function</span><span>deletePostAction</span><span>()</span>{</span><span>if</span>(!<span>$this</span>->userHasPermission(<span>'ADMIN'</span>, <span>'VIEW_PRODUCT'</span>))
        {
            <span>return</span><span>$this</span>->requirePermission(<span>'ADMIN'</span>, <span>'VIEW_PRODUCT'</span>);
        }
        <span>$post_id</span> = (int) <span>$this</span>->params()->fromRoute(<span>'post_id'</span>, <span>0</span>);
        <span>$ret</span> = <span>false</span>;
        <span>if</span> (<span>$post_id</span>) {
            <span>$table</span> = <span>$this</span>->getPostTable();
            <span>$table</span>->deleteRowById(<span>$post_id</span>);
            <span>$this</span>->layout()->selectedTab = <span>'post-list'</span>;
            <span>$ret</span> = <span>true</span>;
        }

        <span>return</span><span>new</span> JsonModel(<span>array</span>(<span>$ret</span>));
    }</code>
Copier après la connexion

两个action的路由设置就不写了,也没有具体的phtml网页,只是实现功能而已。

ajax代码中,通过.get(url,data)函数,注意,此处的data是指action或者phtml返回的JsonModel的array数组,是返回的所有数据。实际上,在click之后,get的第一个参数,就执行了action,顺便获取了数据,然后根据参数,执行操作,这是非常方便的。

贴一下图吧,虽然看不出效果:
点击绿勾的话,status就是变成Published,点击红叉,就会变成Rejected,红垃圾箱,就是点击删除。
右侧三个图标就是ajax实现的

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了实习小结十二:Ajax的get函数使用实例,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Dec 29, 2023 pm 02:27 PM

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Aug 24, 2023 am 09:48 AM

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

Comment utiliser la publication des requêtes Python Comment utiliser la publication des requêtes Python Apr 29, 2023 pm 04:52 PM

Python simule le navigateur envoyant des demandes de publication au format importrequests request.postrequest.post(url,data,json,kwargs)#format de demande de publication request.get(url,params,kwargs)#Par rapport à la demande d'obtention, les paramètres d'envoi de demande de publication sont divisés en Le paramètre de données Forms ( x-www-form-urlencoded) json (application/json) prend en charge le format de dictionnaire et le format de chaîne. Le format de dictionnaire utilise la méthode json.dumps() pour convertir les données en chaîne au format json légal.

Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Mar 23, 2023 am 09:15 AM

Pour les développeurs PHP, utiliser POST pour accéder à des pages avec des paramètres est une compétence de base. POST est une méthode d'envoi de données en HTTP. Il peut soumettre des données au serveur via des requêtes HTTP. La page de renvoi traite et saute la page côté serveur. Dans le développement réel, nous devons souvent utiliser POST avec des paramètres pour accéder aux pages afin d'atteindre certains objectifs fonctionnels.

Comment déterminer si un message a été soumis en PHP Comment déterminer si un message a été soumis en PHP Mar 21, 2023 pm 07:12 PM

PHP est un langage de script côté serveur largement utilisé qui peut être utilisé pour créer des applications Web interactives et dynamiques. Lors du développement d'applications PHP, nous devons généralement soumettre les données saisies par l'utilisateur au serveur pour traitement via des formulaires. Cependant, nous devons parfois déterminer si les données du formulaire ont été soumises en PHP. Cet article explique comment effectuer une telle détermination.

Comment Java lance-t-il une requête http, appelle-t-il la publication et obtient-il les interfaces ? Comment Java lance-t-il une requête http, appelle-t-il la publication et obtient-il les interfaces ? May 16, 2023 pm 07:53 PM

1. Java appelle l'interface de publication 1. Utilisez URLConnection ou HttpURLConnection fourni avec Java. Il n'est pas nécessaire de télécharger d'autres packages jar. Si le code de réponse de l'interface est modifié par le serveur, le message de retour ne peut pas être reçu. ne peut être reçu que lorsque le code de réponse est correct pour renvoyer publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt.

Comment résoudre le problème du proxy inverse NGINX qui renvoie 405 pour la requête POST de la page HTML Comment résoudre le problème du proxy inverse NGINX qui renvoie 405 pour la requête POST de la page HTML May 22, 2023 pm 07:49 PM

Nom du serveur :server{listen80;listen443ssl;server_namenirvana.test-a.gogen;ssl_certificate/etc/nginx/ssl/nirvana.test-a.gogen.crt;ssl_certificate_key/etc/nginx/ssl/nirvana.test-a.gogen .key;proxy_connect_timeout600;proxy_read_timeout600;proxy_send_timeout600;c

Comment implémenter PHP pour accéder à la page et transporter les données POST Comment implémenter PHP pour accéder à la page et transporter les données POST Mar 22, 2024 am 10:42 AM

PHP est un langage de programmation largement utilisé dans le développement de sites Web, et les sauts de page et le transport de données POST sont des exigences courantes dans le développement de sites Web. Cet article présentera comment implémenter le saut de page PHP et transporter les données POST, y compris des exemples de code spécifiques. En PHP, les sauts de page sont généralement implémentés via la fonction header. Si vous devez transporter des données POST pendant le processus de saut, vous pouvez le faire en suivant les étapes suivantes : Tout d'abord, créez une page contenant un formulaire, dans lequel l'utilisateur remplit les informations et clique sur le bouton Soumettre. Acti sous la forme

See all articles