好吧,我设法得到复选框的值,但现在我有另一个问题。
这是我的观点,rssFeeds.php

<?php foreach( $feeds as $row ) : ?>
<div class="row">
   <div class="col-md-2 col-sm-3 text-center">
        <a class="story-title"><img alt="" src="http://www.solostream.com/wp-content/uploads/2014/06/20140110080918_0555.jpg" style="width:100px;height:100px"></a>

        <label class="checkbox-inline">
            <input type="checkbox" class="chkbox" value="chkbox_<?php echo $row->category; ?>_<?php echo $row->id; ?>"> Mark Read
        </label>
    </div>
    <div clas="col-md-10 col-sm-9">
        // here are my feeds....
    </div>
</div>
<?php endforeach; ?>

我有这个脚本,它接受复选框值,并将其发送到我的控制器:
<script>
$(document).ready(function(){
   $(document).on('click','.chkbox',function(){
       var id=this.value;

       $.ajax( {
          type: "POST",
          context: "application/json",
          data: {id:id},
          url: "<?php echo site_url('rssFeedReader/markReadUnread'); ?>",
          success: function(msg)
          {
              // what should i do here ?....
          }
      })
    });
  });
</script>

在我的控制器中,我只是加载一个模型,该模型更改了数据库中的值0或1(表示已读或未读)。
问题是我的桌子上什么也没变。。。
我需要做点什么。ajax中的函数成功了吗?什么。。?我只需要更改数据库中的一个值。。。。

最佳答案

@詹姆斯·拉勒找到了你想要的答案,但我将进一步阐述。
您可以为输入提供相同的名称(单选按钮、复选框)以使它们彼此交互。对于单选按钮,实际上需要有相同的名称来标记和取消标记其他按钮。不过,在本例中,我们将使用<input name=example[]>注意[],这意味着当您执行ajax post(或任何post)时,它将把所有选中的值作为数组发送。
因此,按照James的建议,您可以使用<input name="checkbox[<?php echo $row->id?>]"进行$.post(url, data, callback)发布,最简单的方法是将其放入表单中,为表单分配id,进行序列化发布。你可以这样做:

<form id="rss_form" method="post" action="javascript:rssUpdate();">
    <input name="checkbox[<?php echo $row->id?>]" type="checkbox"/>
    <input type="submit" value="submit"/>
</form>

<script>
    function rssUpdate()
    {
        $.post(url/to/post/to, $("#rss_form").serialize());
    }
</script>

07-24 09:47
查看更多