html、jQ、js、php给循环中的元素绑定事件,并获取到该元素或者该条数据相关的其他元素值,用以触发ajax请求。

本文介绍如何在PHP项目中为循环生成的元素绑定事件,以获取特定数据并触发AJAX请求,实现评论弹窗等功能,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html、jQ、js、php给循环中的元素绑定事件,并获取到该元素或者该条数据相关的其他元素值,用以触发ajax请求。

引言

在开发中(特别是做php的什么都需要会,难受。。。),大家应该会遇到类似这样子的需求:点击某一条评论,触发一个评论弹窗(这类需求一般都是为了提高用户体验度,而诞生的),这个时候我们就需要获取到你点击的这条数据的id。会一点html的朋友都知道,html中的id是唯一的(注意这里的id不同于前面提到的数据id)。但是我们在做项目的时候 列表中的数据以及元素都是被循环出来的,所以不论你给我这个被循环的元素用id标识还是class标识 你通过id或者class去获取值的时候,直接通过id和class去获取 就会获取到你循环出来的数据的 最后一个,这是不符合需求的。

正文

哈哈,废话不多说,直接上代码(以下只是关键的代码,开头结尾不重要的就不放上来扰乱大家视线了,{{}}的地方是smarty模板引擎的写法,如果大家的模板引擎不一样 就不用在意,这个语法大家应该都看得懂:就是循环 判断 赋值 替换成各自的引擎写法即可。):

 {{foreach from=$data.info item=v}}
                    {{if $v}}
                    <tr class="tbody">
                        <td class="username" "see({{$v.id}})">{{$v.title|msubstr:0:40:'utf8'}}</td>
                        <td >{{$v.category_name}}</td>
                        <td>{{$v.department_name}}</td>
                        <td>{{'Y-m-d'|date:$v.create_time}}</td>
                        <td>
                            {{if $v.status eq 2}}
                            一级审核未通过
                            {{elseif $v.status eq 1}}
                            终审通过
                            {{elseif $v.status eq 3}}
                            一级审核通过
                            {{elseif $v.status eq 6}}
                            二级审核不通过
                            {{elseif $v.status eq 7}}
                            待三级审核
                            {{elseif $v.status eq 8}}
                            三级审核不通过
                            {{elseif $v.status eq 0}}
                            未审核
                            {{/if}}
                            <!-- LOG中的审核状态:1、表示一级审核不通过;2、表示一级审核通过;3、二级审核通过,4、表示二级审核不通过;5、二级提交给三级审核;6、表示二级取消给三级审核;7、三级审核通过;8、三级审核不通过 -->
                        </td>
                        <td>{{$v.publish_user_name}}</td>
                        <td>{{$v.check_user_name}}</td>
                        <td>
                            <b "see({{$v.id}})">查看</b>
                    <!--        {{if $finalAuditEdit==2}}
                            <a href="{{U url='finformation/administratorEdit&id='|cat:$v.id}}">编辑</a>
                            {{/if}}-->
                            {{if $v.status == 7 || $v.status == 1 || $v.status == 8}}
                                 <a href="{{U url='finformation/threadAuditEdit&id='|cat:$v.id}}">审核</a>
                            {{/if}}
                            {{if $finalAuditDelete==2}}
                                <a href="{{U url='finformation/deleteMessage&id='|cat:$v.id}}">删除</a>
                            {{/if}}




                            <select name="catid" class="add_content">
                                <option name="catid" value="0">同步到门户网站</option>
                                {{foreach from=$group_category item=v2}}
                                <option name="catid"  value="{{$v2.catid}}">{{$v2.name}}</option>
                                {{if $v2.child}}
                                {{foreach from=$v2.child item=v2_2}}
                                <option  name="catid"  value="{{$v2_2.catid}}">——{{$v2_2.name}}</option>
                                {{if $v2_2.child}}
                                {{foreach from=$v2_2.child item=v2_3}}
                                <option name="catid" value="{{$v2_3.catid}}">————{{$v2_3.name}}</option>
                                {{/foreach}}
                                {{/if}}
                                {{/foreach}}
                                {{/if}}
                                {{/foreach}}
                            </select>
                            <input name="cid" value="{{$v.id}}" type="hidden"/> 


                        </td>

                    </tr>
                    {{/if}}
                    {{/foreach}}


					<script>
                        $(".add_content").change(function () {
                            var cid=$(this).next().val();//   这里是关键点。获取select的下一个兄弟节点的值(对于选择器不清楚的 朋友可以查看jQ文档的选择器)
                            var catid=$(this).find("option:selected").val()//  这里是关键点。获取select中 被选中的option的值

                            $.ajax({
                                type:'post',
                                url:"{{U url='Findex/add_content'}}",
                                dataType:'json',
                                data:{
                                    cid:cid,
                                    catid:catid,
                                },
                                success:function(json){
                                    if(json.status == 1){
                                        alert('操作成功');
                                    }else{
                                        alert('操作失败');
                                    }
                                },

                            });
                        })
                    </script>

转载使用请注明出处,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值