php 模拟 asp.net webFrom 按钮提交事件实例,asp.netwebfrom_PHP教程
php 模拟 asp.net webFrom 按钮提交事件实例,asp.netwebfrom
由于公司需要php方面的项目开发,php刚刚入门,在写按钮提交过程中,asp.net里的按钮事件更好些。先看下面的代码,
<? require_once '../inc/EventHelper.php'; function Page_Load() { echo '在任何时候都会运行<br>'; if(!Page::IsPostBack()) { echo '加载产品分类<br>'; if($_GET['cmd']=='edit') { echo '修改加载需要修改的产品信息<br>'; } } } function bAdd_Click() { //Comm::CheckQX('产品管理_添加'); echo "bAdd_Click<br>"; } function bEdit_Click() { //Comm::CheckQX('产品管理_修改'); echo 'proID='.$_GET['proID'].'<br>'; echo "bEdit_Click<br>"; } function sdfsdfdsf_Click() { echo "e44444444444444444444<br>"; } ?>
<form name="aa" method="post" action="?<?=Comm::GetParam()?>"> <input type="submit" name="bAdd" value="添加" /> <input type="submit" name="bedit" value="修改" /> <input type="submit" name="sdfsdfdsf" value="ewrewrewr" /> </form>
做过asp.net开发的对上面的代码应该有点熟悉,如:Page_Load,Page.IsPostback,bAdd_Click,这些很像asp.net的事件。
以上代码在点击【添加】按钮时运行bAdd_Click函数(暂且这么叫,function好像是函数的意思),同样的,点击【修改】按钮自动运行bEdit_Click事件。不需要过多的参数变化,也不需要过多的文件,若页面功能不是很复杂的情况下,用这种模式可以快速开发。
下面来看看EventHelper.php这个文件的代码:
<? class Page { //是否回发数据,1:是 public static function IsPostBack() { global $SYSRunEventName; return !empty($SYSRunEventName); } //加载并执行事件 function EventLoad() { global $SYSRunEventName; $arrEvent=get_defined_functions(); $arrEventUser=$arrEvent['user']; $arr=array_keys($_POST); foreach($arr as $row) { $name=strtolower($row); foreach($arrEventUser as $row1) { $name1=str_ireplace('_click','',$row1); if($name==$name1) { $SYSRunEventName=$row1; break; } } if(!empty($SYSRunEventName)) { break; } } if(function_exists('Page_Load')) Page_Load(); $SYSRunEventRunName=strtolower($SYSRunEventName); if(Page::IsPostBack()) { $SYSRunEventName(); } } } class Comm { public static function GetParam($params=array(),$cmd='addoverride') { $allParam=array(); if($cmd=='addoverride') { $arrKeys=array_keys($params); foreach($arrKeys as $row) { if(!in_array($row,array_keys($allParam))) $allParam[$row]=$params[$row]; } } else if($cmd=='del') { foreach($params as $row) { unset($_GET[$row]); } } $arrKeys=array_keys($_GET); foreach($arrKeys as $row) { if(!in_array($row,array_keys($allParam))) $allParam[$row]=$_GET[$row]; } $p=''; $arrKeys=array_keys($allParam); foreach($arrKeys as $row) { $p.=$row.'='.$allParam[$row].'&'; } return rtrim($p,'&'); } } Page::EventLoad(); ?>
以上功能大家可以测试下,在我php5.4可以运行成功,不过在安全性方面还没考虑过多,看过一些文章php会有可能通过客户端执行php代码,因为php很许多实用的功能特性。
关于Comm::GetParam,由于经常需要获取get方式的参数,或修改参数,如分页时需要保留所有url参数,只修改分页参数(如page=5),所以就自行写了一些代码。
主要利用php以下几个特点:
function_exists
get_defined_functions
以及利用常用的表单提交原理,利用submit提交原理 实现功能的。
由于时间仓促,来不及说明具体原理,还请见谅,代码大家都可以看懂的。
怎么样触发验证控件的文字?验证失败就显示错误消息这样啊,内部应该是各种验证方法,比如正则表达式之类的。
方法一: 直接指定 事件

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

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

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Transformer 已成為各種機器學習任務的熱門選擇,並且取得了很好的效果,那它還能怎麼用?腦洞大開的研究者竟然想用它來設計可程式計算機!這篇論文的作者來自普林斯頓大學和威斯康辛大學,標題為《Looped Transformers as Programmable Computers》,旨在探索如何用 Transformer 來實現通用電腦。具體來說,作者提出了一個將 transformer 網路用作通用電腦的框架,方法是使用特定權重對它們進行程式設計並將它們置於循環(loop)中。在這個框架

機器學習讓電腦繪圖(CG)模擬更真實了!方法名為神經流向圖(NeuralFlowMaps,NFM),四個渦旋的煙霧也能精確模擬的那種:更為複雜的也能輕鬆實現:要知道,在這個AI應用滿天飛的時代,CG物理仿真仍然是傳統數值演算法的天下。 △NFM模擬「蛙跳」儘管神經網路應用在CG能創造目眩神迷的視覺效果,它卻無法嚴格、魯棒地描述物理性質。 △NFM模擬「墨滴」也正是因此,基於神經網路的物理模擬至今仍處於概念驗證(proofofconcept)的階段,所產生的效果也遠非SOTA。為了解決這個複雜問題,

近日,三星公司宣布收購英國知識圖譜新創公司OxfordSemanticTechnologies,增強其本地AI功能,為用戶提供更個人化的AI體驗。該公司主要產品是AI引擎RDFox,透過知識圖譜技術,將資訊儲存為網路絡,處理資料的方式類似於人類的思考方式:獲取、記憶、回憶和推理知識。這項技術將增強設備對使用者使用產品或服務的理解,從而實現快速資訊檢索和推薦。據了解,OxfordSemanticTechnologies成立於2017年,由三位牛津大學教授伊恩·霍羅克斯、鮑里斯·莫蒂克和貝爾納多·昆卡

PHP和WebDriver擴充:如何模擬使用者的捲動和拖曳行為隨著網路應用的不斷發展,越來越多的網站和應用程式需要模擬使用者捲動和拖曳的行為。這對於測試人員和開發人員來說是非常重要的,以確保網站和應用程式在各種場景下都能正常運作。在本文中,我們將介紹如何使用PHP和WebDriver擴充功能來模擬使用者的捲動和拖曳行為。 WebDriver是一個用來自動化瀏覽器的工具,

如何利用GitLab進行API測試和模擬引言:在進行軟體開發過程中,API(ApplicationProgrammingInterface,應用程式介面)測試和模擬是非常重要的一步,它可以幫助開發人員驗證API的正確性和效能,並且可以提前發現潛在的問題。 GitLab是一個非常受歡迎的程式碼託管平台,實現了版本控制和團隊協作等功能。本文將介紹如何運用Git

使用math/rand套件進行隨機數模擬:導入math/rand包。使用time.Now().UnixNano()初始化隨機數產生器。使用rand.Intn(n)產生0到n-1之間的隨機整數。使用rand.Float64()產生0到1之間的浮點數。

蟒蛇和量子計算,這兩個看似遙遠且截然不同的領域,正以一種不可思議的方式相互交織,奏響了一曲算法與量子態的和諧之音,譜寫出一段數字世界的壯麗交響曲。蟒蛇的簡潔優雅與量子計算的奇妙玄妙,在交融中碰撞出無限的火花,為解決複雜問題提供了令人興奮的可能性,開啟了量子計算的新時代。蟒蛇作為一門流行的程式語言,憑藉其易於學習、豐富的函式庫和廣泛的應用,成為量子運算領域不可或缺的工具。蟒蛇的出現,降低了量子計算的門檻,使更多的人能夠參與這一前沿領域的研究和應用。蟒蛇的眾多庫,如NumPy和SciPy,為量子計算

1.引言JUnit是Java語言中最受歡迎的單元測試框架,它使得編寫和維護可讀性強、可維護性好且可靠的測試程式碼變得容易。本指南將提供逐步說明、程式碼範例和最佳實踐技巧,以幫助您有效地使用JUnit進行Java應用程式測試。 2.入門2.1設定測試項目在專案中新增JUnit依賴項以啟用測試功能。使用Maven時,在pom.xml檔案中加入以下相依性:junitjunit
