【问题标题】:keep checkbox checked after submitting form提交表单后保持复选框选中
【发布时间】:2013-08-10 19:23:28
【问题描述】:

目前我可以根据选中的复选框名称属性在 php 中使用 isset 回显表中的行。

但是,我希望在提交表单后选中复选框,并且如果用户取消选中复选框我想使用 php 中的第三个 else 语句,它将从中检索所有行桌子。我怎样才能做到这一点?是否也可以隐藏未选中的框并仅在用户选中一个框时显示已选中的框。提前致谢。

<div> Size
<form id="form" method="post" action="">
<input type="checkbox" name="small" class="checkbox" /> Small
<input type="checkbox" name="medium"  class="checkbox">  Medium<br>
</form> 
</div>

<script type="text/javascript">  
    $(function(){
     $('.checkbox').on('change',function(){
        $('#form').submit();
        });
    });
</script>

<?php
if (isset($_POST["small"])){
$paginate = new pagination($page, 'SELECT * FROM pants WHERE size='small' ORDER BY id desc', $options);

}  
else if (isset($_POST["medium"])){
  $paginate = new pagination($page, 'SELECT * FROM pants where size='medium' ORDER BY id desc', $options);
 }
else { $paginate = new pagination($page, 'SELECT * FROM pants ORDER BY id desc', $options);

}
 ?>

【问题讨论】:

  • 只需检查它们是否都没有设置? else if (!isset($_POST['small']) &amp;&amp; !isset($_POST['medium'])
  • 那么保持检查怎么样?
  • 所以你想让另一个人离开?为什么要这么做?无论哪种方式,在 jquery 中做起来都很简单。
  • 您可以将表单中的 POST 值保存到数据库中,然后在再次呈现表单时提取这些值。 HTML 检查属性 (w3schools.com/tags/att_input_checked.asp) 在这里会很有帮助。如果您对此感兴趣,这将允许长期保存表单值。
  • 简而言之:if... condition is met &lt;input type="checkbox" name="medium" class="checkbox" checked&gt; 只是一个场景。不是 SQL 人,但你明白了 ;-)

标签: php javascript html ajax checkbox


【解决方案1】:
<input type="checkbox" name="small" class="checkbox" <?=(isset($_POST['small'])?' checked':'')?> /> Small
<input type="checkbox" name="medium"  class="checkbox" <?=(isset($_POST['medium'])?' checked':'')?> >  Medium<br>

【讨论】:

  • 这不是 OP 想要的吗?
  • 我不知道。但是这个保存复选框状态,如果用户 unchecks - 然后 jQuery .on 也触发并且没有任何 $_POST 数据工作第三个 else 语句,如 OP 所愿。
【解决方案2】:

这可能会起作用:

<input type="checkbox" name="small" class="checkbox" <?php if ($_POST['small']) echo 'checked'; ?> /> Small
<input type="checkbox" name="medium"  class="checkbox" <?php if ($_POST['medium']) echo 'checked'; ?> />  Medium<br>

【讨论】:

  • 几乎与其他答案相同,只是您忘记添加isset
  • 在您投反对票之前,您可以注意到它们几乎是同时提交的。
猜你喜欢
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多