确定用于提交PHP的按钮

时间:2015-05-20 13:24:10

标签: php forms

我正在创建一个管理引擎,需要管理部分内的部分和页面。

为了便于使用,我们决定显示顺序字段将显示在列表页面上,这样就需要有一个围绕各个部分的表单以及每个页面组的表单。

Preview of layout showing relevant fields

显而易见的解决方案是嵌套表单,xhtml和html5标准都有很明显的原因。因此,我现在将整个页面作为单个表单处理,然后根据按下的按钮决定使用哪些数据来提交数据。

问题在于按钮具有基于部分ID生成的动态名称。

<button type="submit" class="btn bg-blue2 btn-gradient btn-xs" name="order:pages:<?=$GAS['uid'];?>"><span class="glyphicons glyphicons-roundabout"></span> </button>

使用它的父“部分”ID为每组页面生成按钮的名称。通过这样做,我只能选择具有特定前缀的文本字段并处理该数据。

我的问题是,如何在处理页面上检测用于提交表单的按钮。我考虑过使用var_dump($_POST)substr(),但不知道/了解如何正确接近它。

最终结果应该允许我获取所使用按钮的名称(order:pages:id),然后使用substr分隔它,这样我就可以使用id来进一步确定文本字段。

一如既往地感谢你。

2 个答案:

答案 0 :(得分:3)

我建议您保持名称相同,例如name="edit_btn",而不是为您的按钮设置不同的名称属性。

然后你可以简单地将ID放在按钮值属性中,并在PHP端用$_POST['edit_btn']读取它。

HTML:

<button type="submit" value="<?=$ID;?>" name="edit_btn">Edit</button>

PHP:

var_dump($_POST['edit_btn']);

如果出于某些原因INSIST将ID保留在NAME中,您可以这样做:

HTML:

<button name="edit_btn[123]" value="1">Edit</button>

PHP:

var_dump(key($_POST['edit_btn']));

答案 1 :(得分:0)

我已经接受了帮助我解决问题的答案,但是在其他人阅读并希望更好地理解最终结果的情况下,这是使用的代码:

按键代码:

<button type="submit" class="btn bg-blue2 btn-gradient btn-xs" name="reorder" value="pages:<?=$GAS['uid'];?>"><span class="glyphicons glyphicons-roundabout"></span> </button>

确定使用的按钮(仅限调试测试!):

if($_POST['reorder'] == "sections"){ echo 'DEBUGGER ACTIVATED: SUBMITTED SECTIONS FOR RE-ORDER';  }
if(substr($_POST['reorder'], 0, 6) == "pages:"){ echo 'DEBUGGER ACTIVATED: SUBMITTED PAGES FOR RE-ORDER FOR SECTION #'.substr($_POST['reorder'], 6);  }