取消选中复选框的值时获取该值

时间:2016-10-13 10:14:12

标签: php checkbox

我试图在没有选中复选框的情况下获取复选框的值,但只有在选中复选框时才会显示该复选框的值,是否有人可以帮助我?我需要在检查时选择 $ row [2] 的值,并在取消选中时,让我“不参加&#39 ;

感谢。代码如下:

while ($row = mysqli_fetch_array($result)) 
 {          
    echo "<tr><td> "; echo $row[1]; 
    echo "<td> "; echo  $row[0]; 
    echo "<td> "; echo "<input type=\"checkbox\" name='check[]' value='".$row[2]."'> </td> ";
    echo "<tr>";
  }

4 个答案:

答案 0 :(得分:0)

正如Sunil在评论中所建议的那样,如果您想保留数据库中的原始值,最好的办法是在表单中添加隐藏字段。

$i = 0;
while ($row = mysqli_fetch_array($result)) 
{          
    echo "<tr><td> "; echo $row[1]; 
    echo "<td> "; echo  $row[0]; 
    echo "<td> ";
    echo "<input type=\"checkbox\" name='check[]' value='".$row[2]."'>"; 
    echo "<input type=\"hidden\" name='check_original" . $i++ . "' value='".$row[2]."'>"; 
    echo "</td>";
    echo "<tr>";
}

现在,您的表单中有一个$ _POST ['check_originalX'](其中X对应于复选框的编号),您可以从中检索原始值。

答案 1 :(得分:0)

您可以使用jquery进行未经检查的输入的更改类型试试这个:

$("form").submit(function() {
  $("input:checkbox").each(function(){
    if (!$(this).is(':checked')) {      
        $(this).attr({"type":"text","name":"unchecked[]"});     
    }
  });
})

答案 2 :(得分:-2)

如果选中该复选框,则它将包含$ _POST中指定的值。否则,您必须在未选中复选框时设置它:

$value = (isset($_POST['check']) && $_POST['check']) ? $_POST['check'] : "not attended";

或者,扩展代码:

if(isset($_POST['check']) && !empty($_POST['check'])) {
    $value = $_POST['check'];
} else {
    $value = "not attended";
}

编辑:检查数组中的值时,使用foreach循环并为每个数组项添加上面的代码。

答案 3 :(得分:-3)

你可以使用isset($_POST['check'][value])来检查PS“值”变量