Php 以数组形式从HTML表单获取输入,并检查数组中是否有输入
我将HTML表单中的值作为数组输入,如下所示:Php 以数组形式从HTML表单获取输入,并检查数组中是否有输入,php,forms,Php,Forms,我将HTML表单中的值作为数组输入,如下所示: <form method = "post" action = "akf.php"> Enter Values in Array $a:<br><br> <input type="text" name="a[one]" /> <input type="text" name="a[two]" /> <input type="text" name="a[t
<form method = "post" action = "akf.php">
Enter Values in Array $a:<br><br>
<input type="text" name="a[one]" />
<input type="text" name="a[two]" />
<input type="text" name="a[three]" />
<input type="text" name="a[four]" />
<input type="text" name="a[five]" />
<br><br><input type="submit" value="Find"><br><br>
</form>
$a=$_POST['a'];
print_r($a);
现在,如果我提交表单,则不在表单中提供任何输入(即空表单)
它应该返回消息“数组中没有输入值”
注意:我希望PHP仅在我提交表单后返回上述消息
我用于实现输出的函数和语法:
if (empty($a))
{
echo 'No Values entered in the Array';
}
else
{
echo 'Array';
}
这不起作用,因为:当新加载页面时,我只返回消息“数组中没有输入值”,当我单击submit按钮时,PHP获取一些值作为输入并返回消息数组
$sum = array_sum($a);
if($sum==0)
{
echo " No Values entered in the Array ";
}
else
{
echo 'Array';
}
只有当所有输入都是数字(任何类型的数字)时,此语法才起作用。如果我通过html表单在数组中输入字符串并提交,它仍然会打印“数组中没有输入值”
因为
数组的总和($a)代码>不计算字符串。它返回数组,因为即使不输入任何内容,也会提交空字符串。因此,如果不输入任何内容,数组中将充满空字符串
要检查是否只有空字符串,请执行以下操作:
if(!array_filter($a)) {
echo 'No Values entered in the Array';
}
else {
echo 'Array';
}
将所有元素与false进行比较,如果它们为false,则将删除它们。因此,如果数组中的所有元素都是空字符串,则返回的数组将为空,因此验证为false
另请参见:您的表单是:
在数组$a中输入值:
不需要添加任何密钥。
php部分:
$values=数组过滤器($a);
如果(!空($values)){
回声“没有价值”;
}否则{
回波“阵列”;
}
在您的情况下,您可以尝试以下方法:
$somethinginarray = false;
foreach($a as $value) {
if(!empty($value)) { // trim this one or put more efficient validation
$somethinginarray = true;
}
}
if($somethinginarray) echo 'Array';
else echo " No Values entered in the Array ";
谢谢你的帮助。我很高兴我能帮助你。@如果我或任何回答都解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。如果你知道$var&1有什么作用,请分享。无法理解函数test_odd($var){return($var&1)}@sgeems请看:我遇到了通过mysqli_real_escape_字符串函数传递这些输入类型文本的问题。假设我是这样用的<代码>$a=mysqli\u real\u escape\u字符串($con,$\u POST['a'])
它给出错误并说第二个参数应为数组
@SashIKSU,因为error说它看起来像$\u POST['a']
不是数组。尝试$\u POST
并检查它是否有效,您必须调试并查找$\u POST['a']
是否作为数组发送?刚才我想出了一种方法。首先,我将
(我有10个文本输入)放入php数组。其次,我调用另一个for循环中的每个数组元素。在这第二个for循环中,我调用了mysqli\u real\u escape\u string()
方法。现在没事了。。。因为我正在开发分类广告网站,我想知道它可以吗对于($k=0;$k)
$somethinginarray = false;
foreach($a as $value) {
if(!empty($value)) { // trim this one or put more efficient validation
$somethinginarray = true;
}
}
if($somethinginarray) echo 'Array';
else echo " No Values entered in the Array ";