将复选框的值更改为php(在数组中)

时间:2012-03-05 02:33:07

标签: jquery forms checkbox

当我点击复选框(检查或取消选中)时,我想将其状态(开/关)和id(或名称)的值发送到php(然后是sql)。 我的伪代码如下:

  $("input:checkbox").click(function () {
      var cat_id = jQuery(this).attr('name');
      var status = [];

      if($("input:checkbox").is(':checked')) {
          return $(this).attr();
      } else {
          return $(this).attr();
      }

      $.post("var_dump.php", {
          cat_id: status
      }, // should be id(name of chbox) and its value 1-on, 0-off 
      function (response) {
          $("#result").text(response); //just for checking
      });

      return true;
  });

我会有很多行包含每行的数据和复选框(因此未经检查的框不会计算),我可以使用.map().each()来构建数组,但我希望每个都有新值时间我改变了复选框的状态 - 所以每次它应该是新的$.post值。

数组的原因是我想让按钮取消选中五个或十个(最后一个)复选框/行,因此它应该是一次性数组。 (但这将在稍后实施。)

1 个答案:

答案 0 :(得分:1)

在您的代码中,return语句甚至不会等待后置代码执行。删除那些不需要的return语句并试试这个。同时将status定义为对象而不是数组,因为您要在post请求中发送键/值对。

$("input:checkbox").click(function () {
      var cat_id = jQuery(this).attr('name');
      var status = {};
      //This will get the id or name whatever is available
      status[this.id || this.name] = this.checked ? "1": "0";

      $.post("var_dump.php", {
          cat_id: status
      }, // should be id(name of chbox) and its value 1-on, 0-off 
      function (response) {
          $("#result").text(response); //just for checking
      });

      return true;
  });