由于公司需要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提交原理 实现功能的。
由于时间仓促,来不及说明具体原理,还请见谅,代码大家都可以看懂的。
我正在尝试捕获提交按钮click事件,并将页面滚动到顶部,如果它还没有在那里。 由于某些原因,该事件不会第一次触发,即如果滚动大于0,则不会发生滑到页面顶部的情况。只有第二次才会激活。 有什么想法或建议吗?我是不是漏掉了什么?谢谢.
问题内容: 我正在使用ASP.net Web应用程序。 我有一个带有提交按钮的表格。提交按钮的代码如下所示。 我想写如下内容: 我该怎么做呢? 问题答案: 你最好做… 如果返回,则您的表单不会提交。 您可能还应该将事件处理程序从内联移动。
表单按钮一般分为三类,分别是提交按钮、重置按钮和普通按钮。提交按钮、重置按钮只能在表单中使用,普通按钮则可以在网页的任何地方使用。 从本质上讲,表单按钮也是表单控件,之所以把它分离出来,单独介绍,是因为它的功能比较特别。提交按钮用于把表单数据发送到服务器,重置按钮用于重置整个表单的数据,普通按钮则需要开发者赋予它功能。 当用户点击提交按钮和重置按钮时,就有动作发生,一般不需要添加动作;而普通按钮,
本文向大家介绍JS button按钮实现submit按钮提交效果,包括了JS button按钮实现submit按钮提交效果的使用技巧和注意事项,需要的朋友参考一下 今天在使用表单是同时使用POST更新、删除操作。然而form表单的 submit 且一旦提交则全部提交,所以想到的实现方法就是 使用button实现,代码实现见如下: form设置: 隐藏的act方法设置,代码如下: 最后关键的是 bu
我使用bootstrap模式获得了一个register表单,它将调用ajax post函数。 但是,它似乎并不执行我的$.post。另外,如何将php函数的返回值使用到ajax数据中?那么,如果我的createAccount返回true或其他值,我的ajax如何捕获它呢? 我的阿贾克斯。 我的CreateAccount.php 我的函数.php
按钮事件 1、有注册错误/正确提示 bp MessageBoxA bp rtcMsgBox 如果事先找不到按钮事件,可以通过下消息断点,返回后回溯即可找到按钮事件起始位置 2、无任何提示 bp GetDlgItem 可以通过bp GetDlgItem获取按钮事件代码 3、未注册一启动或者关闭就跳出个注册框或者提示框 bp RegOpenKey(A) bp CreateFileA bp GetPri