Home Backend Development PHP Tutorial php 模拟 asp.net webFrom 按钮提交事件实例_PHP

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

May 31, 2016 pm 07:29 PM
simulation

由于公司需要php方面的项目开发,php刚刚入门,在写按钮提交过程中,asp.net里的按钮事件更好些。先看下面的代码,

<&#63;
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>";
}

&#63;>
Copy after login

<form name="aa" method="post" action="&#63;<&#63;=Comm::GetParam()&#63;>">
<input type="submit" name="bAdd" value="添加" />
<input type="submit" name="bedit" value="修改" />
<input type="submit" name="sdfsdfdsf" value="ewrewrewr" />
</form>
Copy after login

做过asp.net开发的对上面的代码应该有点熟悉,如:Page_Load,Page.IsPostback,bAdd_Click,这些很像asp.net的事件。

以上代码在点击【添加】按钮时运行bAdd_Click函数(暂且这么叫,function好像是函数的意思),同样的,点击【修改】按钮自动运行bEdit_Click事件。不需要过多的参数变化,也不需要过多的文件,若页面功能不是很复杂的情况下,用这种模式可以快速开发。

下面来看看EventHelper.php这个文件的代码:

<&#63;
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();
&#63;>
Copy after login

以上功能大家可以测试下,在我php5.4可以运行成功,不过在安全性方面还没考虑过多,看过一些文章php会有可能通过客户端执行php代码,因为php很许多实用的功能特性。

关于Comm::GetParam,由于经常需要获取get方式的参数,或修改参数,如分页时需要保留所有url参数,只修改分页参数(如page=5),所以就自行写了一些代码。

主要利用php以下几个特点:

function_exists
get_defined_functions

以及利用常用的表单提交原理,利用submit提交原理 实现功能的。

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

Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Using Transformer as a general-purpose computer, it can also execute in-context learning algorithms. This research is very imaginative. Using Transformer as a general-purpose computer, it can also execute in-context learning algorithms. This research is very imaginative. Apr 13, 2023 am 11:31 AM

Transformer has become a popular choice for various machine learning tasks and has achieved great results, so how else can it be used? Researchers with great imagination actually want to use it to design programmable computers! The authors of this paper, titled "Looped Transformers as Programmable Computers", are from Princeton University and the University of Wisconsin, and aim to explore how to use Transformers to implement general-purpose computers. Specifically, the authors propose a framework for using transformer networks as general-purpose computers by programming them with specific weights and placing them in loops. in this framework

AI simulator takes the new SOTA in physics simulation! AI simulator takes the new SOTA in physics simulation! Feb 19, 2024 pm 06:50 PM

Machine learning makes computer graphics (CG) simulations more realistic! The method is called Neural Flow Maps (NFM), which can accurately simulate smoke with four vortices: more complex ones can also be easily realized: you know, in this era of AI applications flying all over the sky, CG physics simulation is still It is the world of traditional numerical algorithms. △NFM simulates "leapfrog". Although the application of neural networks in CG can create dazzling visual effects, it cannot strictly and robustly describe physical properties. △NFM simulates "ink droplets" It is precisely for this reason that physical simulation based on neural networks is still in the proof of concept stage, and the effects generated are far from SOTA. In order to solve this complex problem,

Samsung acquires British knowledge graph startup Local AI simulates human thinking to handle tasks Samsung acquires British knowledge graph startup Local AI simulates human thinking to handle tasks Jul 19, 2024 pm 12:44 PM

Recently, Samsung announced the acquisition of Oxford Semantic Technologies, a British knowledge graph startup, to enhance its local AI capabilities and provide users with a more personalized AI experience. The company's main product is the AI ​​engine RDFox, which uses knowledge graph technology to store information as an interconnected network. The way it processes data is similar to how humans think: acquiring, memorizing, recalling and reasoning about knowledge. This technology will enhance the device's understanding of the products or services used by users, thereby enabling rapid information retrieval and recommendations. It is understood that Oxford Semantic Technologies was founded in 2017 by three Oxford University professors: Ian Horrocks, Boris Mortick and Bernardo Cuenca.

PHP and WebDriver extensions: How to simulate user scrolling and dragging behavior PHP and WebDriver extensions: How to simulate user scrolling and dragging behavior Jul 07, 2023 pm 04:15 PM

PHP and WebDriver extensions: How to simulate users' scrolling and dragging behaviors. With the continuous development of network applications, more and more websites and applications need to simulate users' scrolling and dragging behaviors. This is very important for testers and developers to ensure that websites and applications work properly in various scenarios. In this article, we will introduce how to use PHP and WebDriver extensions to simulate user scrolling and dragging behavior. WebDriver is a tool for automating browsers,

How to use GitLab for API testing and simulation How to use GitLab for API testing and simulation Oct 27, 2023 pm 05:35 PM

How to use GitLab for API testing and simulation Introduction: In the process of software development, API (Application Programming Interface, application programming interface) testing and simulation is a very important step. It can help developers verify the correctness and performance of the API, and can Discover potential problems ahead of time. GitLab is a very popular code hosting platform that implements functions such as version control and team collaboration. This article will introduce how to use Git

How to simulate using random numbers in Golang? How to simulate using random numbers in Golang? Jun 06, 2024 pm 01:16 PM

Use the math/rand package for random number simulation: import the math/rand package. Use time.Now().UnixNano() to initialize the random number generator. Use rand.Intn(n) to generate a random integer between 0 and n-1. Use rand.Float64() to generate a floating point number between 0 and 1.

The magnificent symphony of Python and quantum computing: composing the harmonious sound of algorithms and quantum states The magnificent symphony of Python and quantum computing: composing the harmonious sound of algorithms and quantum states Feb 19, 2024 pm 11:24 PM

Python and quantum computing, two seemingly distant and completely different fields, are intertwined in an incredible way, playing a harmonious sound of algorithms and quantum states, composing a magnificent symphony of the digital world. . The simplicity and elegance of python and the wonder and mystery of quantum computing collide with each other to create infinite sparks, providing exciting possibilities for solving complex problems and opening a new era of quantum computing. Python, a popular programming language, has become an indispensable tool in the field of quantum computing due to its ease of learning, rich libraries, and wide range of applications. The emergence of python has lowered the threshold of quantum computing, allowing more people to participate in research and applications in this cutting-edge field. Python’s numerous libraries, such as NumPy and SciPy, for quantum computing

Java JUnit Practical Guide: Writing Reliable Tests Java JUnit Practical Guide: Writing Reliable Tests Feb 19, 2024 pm 01:50 PM

1. Introduction JUnit is the most popular unit testing framework in the Java language, which makes it easy to write and maintain readable, maintainable and reliable test code. This guide will provide step-by-step instructions, code examples, and best practice tips to help you effectively use JUnit for Java application testing. 2. Getting Started 2.1 Set up the test project Add JUnit dependency to the project to enable testing functionality. When using Maven, add the following dependency in the pom.xml file: junitjunit

See all articles