如何使用javascript自动提交保存/重新填充的复选框

How to auto submit saved/repopulated checkboxes using javascript

本文关键字:新填充 填充 复选框 javascript 何使用 保存 提交      更新时间:2024-04-25

有人能告诉我如何在页面重新加载时自动提交我保存/重新填充的复选框选项吗?重定向到页面后,复选框会正确地重新填充,然后再返回,但我不知道如何自动提交结果。

形成

<form id="form" method="post" action="">
<input type="checkbox" name="2kandunder" class="checkbox" id="1" <?=(isset($_POST['2kandunder'])?' checked':'')?>/> $2000 And Under<br>
<input type="checkbox" name="2kto4k" class="checkbox" id="2" <?=(isset($_POST['2kto4k'])?' checked':'')?>/> $2001 To $4000<br>
</script>    
<input type="checkbox" name="4kandup" class="checkbox" <?=(isset($_POST['4kandup'])?' checked':'')?>/> $4001 And Up<br></td>

选中框时自动提交的javascript。我试图将此代码实现到下面的javascript中,我正在使用它来重新填充选中的复选框,但无法使其工作。

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

在用户单击收藏夹按钮后,我使用javascript重新填充复选框,并将其带到php脚本,然后重定向回该页面。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://cdn.jsdelivr.net/jquery.cookie/1.4.0/jquery.cookie.min.js"></script>
<script>
  $(":checkbox").on("change", function(){
    var checkboxValues = {};
    $(":checkbox").each(function(){
      checkboxValues[this.id] = this.checked;
    });
    $.cookie('checkboxValues', checkboxValues, { expires: 7, path: '/' })
  });
  function repopulateCheckboxes(){
    var checkboxValues = $.cookie('checkboxValues');
    if(checkboxValues){
      Object.keys(checkboxValues).forEach(function(element) {
        var checked = checkboxValues[element];
        $("#" + element).prop('checked', checked);
      });
    }
  }
  $.cookie.json = true;
  repopulateCheckboxes();

</script>

php

if (isset($_POST["2kandunder"])) {
$arguments[] = "`2kandunder` = 'yes'";
}
if (isset($_POST["2kto4k"])) {
 $arguments[] = "`2kto4k` = 'yes'";
}
if (isset($_POST["4kandup"])) {
$arguments[] = "4kandup = 'yes'";
}
if(!empty($arguments)) {
$str = implode(' AND ',$arguments);
$qry = "SELECT favorite_id, id, venue, imageurl FROM venue_ads WHERE `showingads` = 'yes' AND " . $str . "";

$result = $conn->query($qry);

 if ($result->num_rows > 0)

复选框会正确地重新填充,但不会提交任何内容。如何使重新填充的javascript提交重新填充的复选框?

我可能误解了你的问题,因为你似乎可以按照你对repopulateCheckboxes()的调用提交一份表单,就像这样:

repopulateCheckboxes();
document.getElementById('form').submit();

也许你可以抛出一个jsbin的例子?