1

我想要一组使用 AJAX 发布到 PHP 页面的复选框,但是在发布之后我希望能够使用相同的复选框将另一组选择发送到同一个 PHP 页面,最多指定数量集,然后将这些集用作 PHP 页面中的数据。

我无法弄清楚这将如何实现。有任何想法吗?

索引.php:

<form id="checkboxes">
  <input type="checkbox" id="1" name="checkboxes[]" value="1" />
  <input type="checkbox" id="2" name="checkboxes[]" value="2" />
  <input type="checkbox" id="3" name="checkboxes[]" value="3" />
  <input type="checkbox" id="1" name="checkboxes[]" value="4" />
  <input type="checkbox" id="1" name="checkboxes[]" value="5" />
  <input type="button" id="button" name="submit" value="Submit" />
</form>
<script type="text/javascript">
  $(function() {
    $("#button").click(function() {
    $.ajax({
      type: "POST",
      url: "process.php",
      data: $("form#checkboxes").serialize(),
      success: function(data) {
        $("#div").load('success.php')
      }
    });
    })
  })
</script>

进程.php:

$data = array();
foreach($_POST['checkboxes'] as $key => $value){
  $data[] = "$value";
}
4

2 回答 2

0

您将使用 ajax 调用的成功函数。我们将获取每个复选框的值,然后通过 ajax 提交表单,防止默认,然后在表单提交后取消选中所有框。

$('something').submit(function(e){
  e.preventDefault();
  var checked = [];
  $.each($('input[type=checkbox]'), function(i,v){
    if($(this).is(':checked')){
      checked.push($(this).val());
    }
  });
  $.ajax({
    url: 'someurl.ext',
    type: 'post',
    data: checked,
    success: function(data){
      $.each($('input[type=checkbox]'), function(i,v){
        $(this).prop('checked', false');
      });
    }

  });
});
于 2012-06-28T02:17:35.923 回答
0

如果您希望数据随着时间的推移占主导地位,则需要使用 Sessions。所以,你可以这样使用它:

<?php
    session_start();
    if (!isset($_SESSION["data"]))
        $_SESSION["data"] = array();
    foreach($_POST['checkboxes'] as $key => $value){
      $_SESSION["data"] = "$value";
    }
    // Print out the final array, if there's a parameter final!
    if (isset($_GET["final"]))
        foreach ($_SESSION["data"] as $data)
            echo $data;
?>

对于 JavaScript,您需要重置东西:

<form id="checkboxes">
    <input type="checkbox" id="1" name="checkboxes[]" value="1" />
    <input type="checkbox" id="2" name="checkboxes[]" value="2" />
    <input type="checkbox" id="3" name="checkboxes[]" value="3" />
    <input type="checkbox" id="1" name="checkboxes[]" value="4" />
    <input type="checkbox" id="1" name="checkboxes[]" value="5" />
    <input type="button" id="button" name="submit" value="Submit" />
</form>
<script type="text/javascript">
    $(function() {
        $("#button").click(function() {
            $.ajax({
                type: "POST",
                url: "process.php",
                data: $("form#checkboxes").serialize(),
                success: function(data) {
                    $("#div").load('success.php');
                    $("form#checkboxes > input[type='checkbox']").removeAttr('checked');
                }
            });
        });
    });
</script>
于 2012-06-28T02:19:51.823 回答