CodeIgniter PHP:当复选框为mark / unmark时,更改数据库中的值

时间:2014-10-29 15:49:45

标签: javascript php mysql ajax codeigniter

好吧,我设法以某种方式获得复选框的价值,但现在我有另一个问题。

这是我的观点,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中放入.succes函数中的东西吗?什么.. ?我只需要在我的数据库中更改一个值....

1 个答案:

答案 0 :(得分:3)

@ James-Lalor有你想要的答案,但我会扩展它。

您可以为输入指定相同的名称(单选按钮,复选框)以使它们相互交互。在单选按钮的情况下,实际上需要使用相同的名称来标记和取消标记其他按钮。但是在这种情况下,我们将使用<input name=example[]>注意[],这意味着当您执行ajax发布(或任何帖子)时,它将发送作为数组检查的所有值。

因此,根据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>