好吧,我设法以某种方式获得复选框的价值,但现在我有另一个问题。
这是我的观点,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函数中的东西吗?什么.. ?我只需要在我的数据库中更改一个值....
答案 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>