Since the company needs project development in PHP, and I have just started using PHP, in the process of writing button submission, the button event in asp.net is better. First look at the code below,
<? 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>
Those who have done asp.net development should be familiar with the above code, such as: Page_Load, Page.IsPostback, bAdd_Click, these are very similar to asp.net events.
The above code runs the bAdd_Click function (let’s call it that, function seems to mean function) when the [Add] button is clicked. Similarly, the bEdit_Click event is automatically run when the [Modify] button is clicked. There is no need for too many parameter changes or too many files. If the page function is not very complex, this mode can be used for rapid development.
Let’s take a look at the code of the EventHelper.php file:
<? 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(); ?>
You can test the above functions. It can run successfully in my php5.4, but I haven’t thought too much about security. I have read some articles that it is possible for php to execute php code through the client, because php is very practical. functional characteristics.
Regarding Comm::GetParam, since we often need to obtain the parameters in the get method or modify the parameters, for example, we need to retain all url parameters during paging and only modify the paging parameters (such as page=5), so I wrote some code by myself.
Mainly utilize the following features of php:
function_exists
get_defined_functions
And use common form submission principles and submit submission principles to implement functions.
Due to time constraints, I didn’t have time to explain the specific principles. Please forgive me. Everyone can understand the code.
How to trigger the text of the validation control? If the verification fails, an error message will be displayed like this. There should be various verification methods inside, such as regular expressions and the like.
Method 1: Directly specify the event
Method 2: Add
protected void Page_Load(object sender, EventArgs e)
{
Button btn;
btn= new Button();
btn.ID = "btn1";
btn .Text = "Button 1";
this.form1.Controls.Add(btn);
btn.Click += new EventHandler(btn1_Click);
btn = new Button();
btn.ID = "btn2";
btn.Text = "Button 2";
this.form1.Controls.Add(btn);
btn.Click += new EventHandler(btn1_Click);
}
protected void btn1_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");
}