我有一个包含表格数据的表单,每行都有一个具有相同名称的复选框,以便它作为数组通过POST传递给PHP页面。一切正常,但我有一个问题,关于什么时候没有选择页面上的项目 - 这是一个特殊情况,我需要以特定的方式处理,但我想弄清楚如何确定最佳方式判断这种情况何时发生,就像$_POST
数组完全是空的一样。
有哪些策略可以帮助确定何时将一组空数据发布到PHP中的页面?
答案 0 :(得分:8)
使用empty功能
if( empty($_POST) ) {
//do empty $_POST stuff here
}
答案 1 :(得分:4)
您可以通过几种不同的方式完成此任务。
//Method 1
if($_POST) {
//Do Stuff
}
//Method 2
if(!empty($_POST)) {
//Do Stuff
}
//Method 3 - For detecting if a form was submitted
<input type="submit" name="submit" />
if(sizeof($_POST)>1) {
//Do Stuff
}
如果您的值为0,方法2将失败,对于您不必担心的复选框。
方法3依赖于您为提交按钮指定名称,因此至少在未选中任何内容时提交。然后,您可以查看sizeof()
是否返回超过1,以查看是否已检查任何内容。
答案 2 :(得分:4)
使用已知值向页面添加隐藏的输入字段。此字段将始终与POST数据一起传递,因此您将知道用户通过表单提交而不是直接URL登陆。它很简单: -
&lt; input type ='hidden'name ='posted'value ='true'&gt;
答案 3 :(得分:2)
我想你已回答了自己的问题。如果$_POST
数组为空,则没有选中的复选框。
答案 4 :(得分:2)
<form>
<input type="text" name="user" value="" />
<input type="submit" name="post" value="Save" />
</form>
//php
if (isset($_POST['post']))
{
//code here
}
答案 5 :(得分:0)
if ( !empty( $_POST["field"] ) ) {
// Field sent
} else {
// Field empty
}
答案 6 :(得分:0)
(count($_POST) == 0) //returns boolean
或者您的意思是何时张贴表格但没有输入信息?
答案 7 :(得分:0)
提交表单时可以使用发布数据。鉴于以下内容:
if($_POST)
{
// Bar
}
// Foo
如果表单未提交,则会执行Foo
。
如果表单已提交,则会执行Bar
,然后Foo
。
鉴于以下内容:
if ($_POST)
{
// Bar
}
else
{
// Foo
}
如果表单未提交,则会执行Foo
。
如果表单已提交,则会执行Bar
。
至于您的其他问题,检查空数据或适当数据是基本的服务器端表单验证。如果您使用的库可以像以下一样简单:
if ($_POST)
{
$form_helper = new FormHelper();
$form_helper->validate($_POST["email"], "email");
$form_helper->validate($_POST["password"], "password");
if (! $form_helper->notifications())
{
// Bar
}
}
对于您的特定情况(并且没有库),它可能是:
if ($_POST)
{
if (empty($_POST["checklist"])
{
// Delete all entries.
}
else
{
// Do something else.
}
// Foo
}
答案 8 :(得分:0)
这将检查是否输入了任何表格值 - 假设默认输入值=&#39;&#39;
$ post = array_filter($ _ POST,&#39; strlen&#39;); //过滤所有空值
//if html input submit button has NO name value
if (sizeof($post)):
//Do stuff
endif;
// OR if html input submit button HAS a name value
if (sizeof($post) > 1):
//Do stuff
endif;
如果需要精确过滤,您可以使用回调函数
$post = array_filter($_POST,function ($k){ return $k != '' || $k != 'my default value' || *some other condition etc etc* ; });