dongzhong1929 2014-07-27 18:09
浏览 37
已采纳

PHP remeber选中复选框

I am trying to have a filter using checkboxes. Problem is when I unselect some boxes and submit values, all boxes are selected again. I think the problem can be here

if (isset($_POST['option_meno']))

What can be the problem? And yes Im new here, so any ideas hot to make my code simpler would help me also.

Thank you.

<?php

// Make a MySQL Connection
$query_o_meno = "SELECT meno FROM uctovnictvo GROUP BY meno ORDER BY meno"; 

$result_meno = mysql_query($query_o_meno) or die(mysql_error());



?>
<form method="post">
<?php


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

    // Print checked checkboxes
        echo "<strong>Meno:</strong>";
        echo "<br />";
    while($row = mysql_fetch_array($result_meno)){
        //I believe the problem is line below ----------------------------- 
        if (isset($_POST['option_meno'])) {
            echo "<input type='checkbox' name='option_meno[]' value='".$row['meno']."' checked />" . $row['meno'];
            echo "<br />";
            //}
        }
        else{
            echo "<input type='checkbox' name='option_meno[]' value='".$row['meno']."' / >" . $row['meno'];
            echo "<br />";
        }

    }
    }

else{
    $option_meno = array();
        echo "<strong>Meno:</strong>";
        echo "<br />";
    while($row = mysql_fetch_array($result_meno)){
        echo "<input type='checkbox' name='option_meno[]' value='".$row['meno']."' checked />" . $row['meno'];
        echo "<br />";
        $option_meno[] = $row['meno'];
        }   
    }


?>
<input type="submit" name="Filtrovat" value="Filtrovat" />
</form>
  • 写回答

2条回答 默认 最新

  • dongren1011 2014-07-27 18:18
    关注

    This is not tested, but should work:

    if (isset($_POST['Filtrovat'])) 
    { 
        // Print checked checkboxes
        echo "<strong>Meno:</strong>";
        echo "<br />";
    
        while($row = mysql_fetch_array($result_meno))
        {   
            $checked = "";
            if(isset($_POST['option_meno']))
            $checked = in_array($row['meno'],$_POST['option_meno'])?" 
                       checked = 'checked' ":"";
    
            echo "<input type='checkbox' name='option_meno[]' 
                  value='".$row['meno']."' $checked / >" . $row['meno'];
            echo "<br />";
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题