像表单中的其他输入名称一样提交按钮名称

时间:2013-07-30 09:34:32

标签: php forms post submit

在提交表单后,我花了一个小时的时间抓住我的头几乎是空的$ _POST。有一个简单的数据网格,我选择一行,js填充所有输入,按钮发送信息到edit.php

在表单中,每个输入(text / textarea / etc)的名称类似于publication[image]publication[text],最后type="submit"的名称为name = "publication"。因为发布是当前表名,图像和文本 - 字段名称。 当前表可以是任何。

有些桌子一切都很好。但有些人只给了我$_POST提交按钮名称及其value = "Ok"。通过猴子方法,我发现如果我将提交按钮名称更改为“updaterow”之类的内容,则$_POST完全按照预期填充任何表格。

但是,如果我遇到一个名为“updaterow”的表,或者这样的“useful_name_for_submit_button”会怎么样?

为什么我不能像其他输入那样命名按钮但没有方括号?为什么当我这样做时,$ _POST除了显示按钮名称之外什么也没做。我查看了http标头 - 它们都正确地进入了服务器。

输入名称是否完全错误?谢谢你。

3 个答案:

答案 0 :(得分:0)

它与HTML或HTTP无关;这就是PHP处理PHP的方式。 PHP中的associtavie数组中不能有两个相同的键。如果你这样做,第二个要么替换第一个要么被忽略。

换句话说,您必须将输入名称视为PHP数组键(或使用方括号时的2D数组)。

答案 1 :(得分:0)

更改或删除提交输入的名称

答案 2 :(得分:0)

对于输入类型元素,如text,textarea等,您使用publication作为数组,它将保存多个值,而对于提交按钮,它不会被用作仅包含一个值的数组。所以$ _POST值将返回表格中最后的值。

如果在text,textarea等的顶部给出了提交按钮,$ _POST值将返回数组值。

尝试为提交按钮使用不同的名称,或者使用提交按钮名称作为发布[提交]

<form name="form_submit" method="post" action="">           
<input type="text" name="publication[title]" />
<input type="text" name="publication[text]" />
<input type="submit" value="Submit" name="publication[submit]" />
</form>

将返回表格中的所有值为Array([publication] =&gt;数组([title] =&gt; test [text] =&gt; test [提交] =&gt;提交))