巅云智能建站平台搭建版(创业门户版)火爆上线,终身授权!新增:文章智能采集+全站真静态打包+城市分站+智能小程序+非法词过滤+H5自适应+智能链词等功能功能详情
帮助文档Help

php 模拟 asp.net webFrom 按钮提交事件实例

一佰互联网站制作(www.yinxi.net) 发布日期 2019-04-28 13:46:30 浏览数: 130

由于公司需要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提交原理 实现功能的。

由于时间仓促,来不及说明具体原理,还请见谅,代码大家都可以看懂的。

TAG标签: php   模拟   asp.net   webFrom   按钮提交事件实例  
一佰互联是全国知名建站品牌服务商,我们有九年网站建设网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

15
04月
高端网站建设-几个有效提高网站流量的方法

一、论坛推广论坛推广是互联网诞生之初就存在的形式,历经多年洗礼,论坛作为一种网络平台,不仅没有消失,反而越来越焕发出它巨大的活力。论坛推广也... >>详情

31
03月
如何利用熊掌号进行SEO优化?巅云建站_SE

在2018年,很多站长和SEOer忽然发现,在优化排名时熊掌号变得关键了起来,甚至很多人戏称,站长瞬间变号长,当然这也从侧面说明了熊掌号悄然... >>详情

09
04月
设计实战!城市指南网站着陆页是这样设计出来的

有人说,世界是一本书,不愿远行的人只能读到其中的一页。的确,旅行是我们生命中最有意义的几件事之一,其间我们有机会看见新的风景,遭遇新的事情,... >>详情

13
02月
网站制作之该如何选好域名?

我想大家也知道,域名的选择在网站制作中占据着至关重要的位置,一个好的域名关乎到未来网站发展的前景。因此,为网站量身选择一个适合自己域名的重要... >>详情

高端网站建设

美工兼顾SEO,为企业电子商务营销助力!

电话:

023-85725751
建站

产品

域名注册 虚拟主机 云服务器 企业邮局
智能建站 APP打包 微站/小程序 创业平台
网站推广 媒体营销 智能采集 AI机器人
400电话 短信营销 店销机器人
私人定制 门户网站