繁体   English   中英

php空数组检查

[英]Php empty array checking

我有一个下面的HTML表,其中的名称包含数组。 如何检查此数组的值是否为空?

echo "<input type='radio' name='ch[$roll][$sname][$class]' value='1' />&nbsp;";
echo "<input type='radio' name='ch[$id][$sname][$class]' value='0' />";

目前,我正在用以下代码进行检查,它无法正常工作,但我知道名称是数组,必须将其与任何数组函数进行比较。 你们能给我个主意吗?

if(isset($_POST['ch']))
{
   $ch = $_POST['ch'];
   if(empty($ch))
    echo "<div class='error>Select attendence field. </div>";   
}

问候。

更新:(完整代码)

$action = htmlspecialchars($_SERVER['PHP_SELF'])."?class=$class_from";  
echo "<form method='post' action='$action' name='attendence'/>";

echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'>";
echo "<tr>";
echo "<td class='tdhead' valign='top' width='200'><b>Student Name</b></td>";    
echo "<td class='tdhead' valign='top' width='250'><b>Roll No</b>
</td>";             
echo "<td class='tdhead' valign='top' width='250'><b>Class Name</b>
</td>";             
echo "<td class='tdhead' valign='top' width='200'><b>Present / Not present</b>
</td>";                 
echo "<td class='tdhead' valign='top' width='200'>
Present All <input type= 'checkbox' 
onclick='checkAll(this)'</td>";                 
echo "</tr>";

//start the counter variable
$counter = 1;
while($res2 = mysql_fetch_array($sql2))
{
$id = (int) $res2['id'];
$sname = inputvalid($res2['sname']);
$roll = inputvalid($res2['roll']);
$class = inputvalid($res2['class']);

echo "<tr>";
echo "<td class='tdhead2' valign='top'>$sname</td>";
echo "<td class='tdhead2' valign='top'>$roll</td>";
echo "<td class='tdhead2' valign='top'>$class</td>";
echo "<td class='tdhead2' valign='top'>";

//echo each radio with the counter for this row
echo "<input type='radio' name='ch[$roll][$sname][$class]' value='1' />&nbsp;";
echo "<input type='radio' name='ch[$id][$sname][$class]' value='0' />";

echo "</td>";
echo "<td class='tdhead2' valign='top'>&nbsp;</td>";
echo "</tr>";

//add one to the counter
$counter++;
}

echo "<tr>";                
echo "<td class='tdhead2'>&nbsp;</td>";
echo "<td class='tdhead2'>&nbsp;</td>";
echo "<td class='tdhead2'>&nbsp;</td>";             
echo "<td class='tdhead2'>&nbsp;</td>";
echo "<td class='tdhead2'><input type='submit' value='Record' name='Submit' 
class='submit' /></td>";                
echo "</tr>";               

echo "</table>";
echo "</form>";


if(isset($_POST['Submit']) && $_POST['Submit'] == "Record")
{
if(isset($_POST['ch']))
{

 $ch = array_filter($_POST['ch']);

if (empty($ch))
     {
     echo "<div class='error>Select attendence field. </div>";   
 }
  }

  if(count($ch) == 0)
  {
echo "<div class='error>Select attendence field. </div>";   
}   
else
{

foreach ($_POST['ch'] as $roll => $arr1)
{
    $roll;
    foreach ($arr1 as $name => $arr2)
    {
    $name;
    foreach ($arr2 as $class => $value)
    {
    $class;
    $value;

 $sql = mysql_query("INSERT INTO e_attendence VALUES('', '$name', '$roll', '$class', 
'$value', '$current_date')");
    }
}
  }
}

if($sql)                        
echo "<div class='success'>Succesfully recorded.   
</div>";                                    

}   

使用empty()代替isset()

检查以下链接提供的比较表

http://php.net/manual/zh/types.comparisons.php

empty() method work for finding whether the array is empty or not.

但为您的解决方案使用以下:

if(isset($_POST['ch']) && $_POST['ch']=='1')
{
   $ch = $_POST['ch'];
   if(empty($ch))
   echo "<div class='error>Select attendence field. </div>";   
}

如果您想在未选择任何广播时显示错误消息,请使用以下代码:-

if(!isset($_POST['ch']) && $_POST['ch']=='')
{
     echo "You have not selected any radio button";
}

尝试这个

if(isset($_POST['ch'])){

   $ch = array_filter($_POST['ch']);

   if (empty($ch)) {
     echo "<div class='error>Select attendence field. </div>";   
   }
}

尝试这个

print_r($_POST['ch']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM