在同一个form中,有多个进行submit的按钮,都会对form进行submit的操作。
但是每个按钮所代表的功能不同,所以在处理此提交form的php页面里,要进行判断,判别是哪个按钮被按下,从而进行不同的处理。
我们通常用到的按钮有3种方式:
简单的介绍一下:
1 type为button,仅仅为一个按钮,按下按钮本身不会进行提交表单的操作。需要借助于js。即上述的onclick中的js。
2 type为submit,按下它会直接提交表单。
3 type为image,即用图片来作为提交表单的按钮。引用的图片即上例中的xxx.gif。这种用图片作为按钮的,按下也会直接提交表单。
再看他们提交之后的情况
1 上述【type=button】的按钮,借助于this.form.submit()这样js提交之后,其按钮本身的value并不会被post过去。$_POST["mybutton1"]为null。
2 上述【type=submit】的按钮,提交表单之后,其按钮本身的value会被post过去。通过$_POST["mybutton2"]即可得到mybutton2value。
3 上述【type=image】的按钮,提交表单之后,其按钮本身的value并不会被post过去。$_POST["mybutton2"]为null。
回到问题本身
1 Q:同一个表单有多个type=button的按钮,如何判别?
A:在表单中设置hidden的项目,在通过js提交表单之前,通过js先来设定hidden项目的值,每个按钮对其赋不同的值,提交之后判断此hidden的值即可知哪个按钮被按下了。
提交表单之后,判断$_POST["buttonFlag"]值就可知道到底是哪个按钮被按下了。这个方法同样适用于submit按钮和image按钮。
2 Q:同一个表单有多个type=submit的按钮,如何判别?
A:
一、就是同上述1中的JS方法。
二、最简单的就是判断按钮的值即可。
按下mybutton2_1的按钮提交之后,$_POST["mybutton2_1"]就为mybutton2_1value。而$_POST["mybutton2_2"]为null。
3 Q:同一个表单有多个type=image的按钮,如何判别?
A:
一、就是同上述1中的JS方法。
二、判断哪个按钮的坐标被POST过来,就是哪个按钮被按下。因为在按下图片按钮的时候,图片按钮的坐标会被一同POST过去,而没有被按下的按钮,则不会。
按下mybutton3_1按钮提交之后,$_POST['mybutton3_1_x']则存在不为null(值为其坐标的x值),而$_POST['mybutton3_2_x']为null。
/***************问题描述,便于搜索***************/
如何判断同一form中的多个按钮是哪一个被按下的
同一form中,多个按钮,判断被按下的按钮
同一form,同一表单,多个按钮,判别,判断,按下
/************************************************/