html 复选框 id动态,javascript-通过ajax具有唯一ID的多个复选框

博主面临的问题是如何通过Ajax和jQuery将复选框的ID传递给PHP函数来存档或取消存档博客文章。他们已经有一个工作示例,但只适用于单个复选框。解决方案是将ID改为class,并使用事件委托处理多个复选框。通过修改代码,现在可以正确地处理每个复选框的改变,同时考虑到CSRF安全性。问题最终得到解决,现在可以成功地针对不同的复选框执行存档操作。
摘要由CSDN通过智能技术生成

我正在一个网站上,该网站现在可以随时进行,但是要完成一项新任务,我需要选中复选框以仅存档新闻项.如果愿意,也可以选择“博客文章”.

想法是在每个博客帖子上都有一个复选框,如果您选中该复选框,则该帖子应被存档. (仅在管理员模式下).

我需要ajax来完成这项工作,但是我还没有学到. PHP部分没有问题.

好吧,问题确实在于我不知道如何将每个复选框的唯一ID传递给JavaScript函数,然后传递给PHP函数.

好的,我有一组博客文章,女巫复选框,如下所示:

等等.从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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值