好久沒來寫部落格了,並不是懈怠了,而是最近在寫一個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>
從程式碼看出來,實現的是更改狀態和刪除兩個功能,分別來自不同的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>
兩個action的路由設定就不寫了,也沒有具體的phtml網頁,只是實現功能而已。
ajax程式碼中,透過.get(url,data)函數,注意,此處的data是指action或phtml傳回的JsonModel的array數組,是傳回的所有資料。實際上,在click之後,get的第一個參數,就執行了action,順便取得了數據,然後根據參數,執行操作,這是非常方便的。
貼一下圖吧,雖然看不出效果:
點選綠勾的話,status就是變成Published,點擊紅叉,就會變成Rejected,紅色垃圾箱,就是點擊刪除。
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了實習小結十二:Ajax的get函數使用實例,包含了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

对于PHP开发者来说,使用POST带参数跳转页面是一项基本技能。POST是HTTP中一种发送数据的方法,它可以通过HTTP请求向服务器提交数据,跳转页面则是在服务器端进行页面的处理和跳转。在实际开发中,我们经常需要使用POST带参数来跳转页面,以达到一定的功能目的。

PHP是一种广泛使用的服务器端脚本语言,它可以用于创建交互式和动态的Web应用程序。在开发PHP应用时,我们通常需要通过表单将用户输入数据提交给服务器端处理。然而,有时候我们需要在PHP中判断是否有表单数据被提交,这篇文章将介绍如何进行这样的判断。

python模拟浏览器发送post请求importrequests格式request.postrequest.post(url,data,json,kwargs)#post请求格式request.get(url,params,kwargs)#对比get请求发送post请求传参分为表单(x-www-form-urlencoded)json(application/json)data参数支持字典格式和字符串格式,字典格式用json.dumps()方法把data转换为合法的json格式字符串次方法需要

一、java调用post接口1、使用URLConnection或者HttpURLConnectionjava自带的,无需下载其他jar包URLConnection方式调用,如果接口响应码被服务端修改则无法接收到返回报文,只能当响应码正确时才能接收到返回publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt

实现如下: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

标题:PHP代码示例:使用POST方式传参并实现页面跳转的方法在Web开发中,经常会涉及到如何通过POST方式传递参数,并在服务器端进行处理后实现页面跳转的需求。PHP作为一种流行的服务器端脚本语言,提供了丰富的函数和语法来实现这一目的。下面将通过一个实际的示例来介绍如何使用PHP来实现这一功能。首先,我们需要准备两个页面,一个用来接收POST请求并处理参数

PHP是一种广泛应用于网站开发的编程语言,而页面跳转并携带POST数据是在网站开发中常见的需求。本文将介绍如何实现PHP页面跳转并携带POST数据,包括具体的代码示例。在PHP中,页面跳转一般通过header函数实现。如果需要在跳转过程中携带POST数据,可以通过以下步骤完成:首先,创建一个包含表单的页面,用户在该页面填写信息并点击提交按钮。在表单的acti

PHP是一种流行的服务器端脚本语言,用于构建动态的Web应用程序和网站。在PHP中,经常需要进行页面跳转以及跨页面传输数据。本文将讨论如何在PHP中实现跳转并携带POST数据。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器