标签:ajax javascript php jquery checkbox
我正在一个网站上,该网站现在可以随时进行,但是要完成一项新任务,我需要选中复选框以仅存档新闻项.如果愿意,也可以选择“博客文章”.
想法是在每个博客帖子上都有一个复选框,如果您选中该复选框,则该帖子应被存档. (仅在管理员模式下).
我需要ajax来完成这项工作,但是我还没有学到. PHP部分没有问题.
好吧,问题确实在于我不知道如何将每个复选框的唯一ID传递给JavaScript函数,然后传递给PHP函数.
好的,我有一组博客文章,女巫复选框,如下所示:
<div class="news_item">
<input name="checkbox_blog" id="checkbox1" value="1" type="checkbox" />
</div>
<div class="news_item">
<input name="checkbox_blog" id="checkbox2" value="1" type="checkbox" />
</div>
等等.从MySQL的ID填充ID.
我为ajax复选框提供了某种插件,但仅适用于一个复选框.
基本上是这样的:
$("#checkbox").change(function() {
if($(this).is(":checked")) {
$.ajax({
url: 'admin/archive_it',
type: 'POST'
});
} else {
$.ajax({
url: 'admin/dont_archive_it',
type: 'POST'
});
}
});
在一个复选框上效果很好,但是我不知道如何继续.
有小费吗?
我认为可以使用两个不同的php脚本来检查和取消选中博客文章,这没关系,这并不重要,我只希望它开始使用不同的复选框.
谢谢!
解:
我将id更改为class,并使用了Arun P Johny的代码:
$('.checkbox_blog').change(function () {
$.ajax({
url: this.checked ? 'admin/archive_it' : 'admin/dont_archive_it',
type: 'POST',
data: {
id: this.value
}
});
});
并且由于我使用的是CodeIgniter,并且启用了CSRF-security选项,因此必须将其添加到数据中:
<?=$this->security->get_csrf_token_name()?> : '<?=$this->security->get_csrf_hash()?>',
现在,它可以完美运行!谢谢大家!
解决方法:
您几乎在那里,除了您可能需要注意的几件事之外,例如
>为所有复选框添加一个通用类,以便下面的事件处理程序对于所有复选框都可以正常工作.
>尽管url是唯一的区别,但无需保留多个ajax调用引用,因此我改进了您的代码,甚至更正了我注意到的几件事.
JS代码:
$(".checkbox").on('change',function() {
var chkBit=$(this).is(":checked");
var url;
if(chkBit)
tarUrl='admin/archive_it';
else
tarUrl='admin/dont_archive_it';
$.ajax({
url: tarUrl,
type: 'POST',
success:function(){
//when the call is successful do something
}
});
});`
标签:ajax,javascript,php,jquery,checkbox 来源: https://codeday.me/bug/20191122/2058895.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。