You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将AJAX请求中的id、pageNumber变量传递给JS函数getReviews使用

问题解决说明

核心问题

  • 你在点击事件中声明的id和pageNumber是局部变量,getReviews()函数的作用域无法直接访问这两个值
  • 点击事件中重复发送了两次相同的AJAX请求,属于冗余逻辑
  • 你设置了dataType: 'json'但直接把响应内容赋值给DOM的html属性,如果你后端返回的是评论HTML片段,这个配置会导致请求解析失败
  • 原有HTML中的ul节点没有加paging类,和JS中绑定点击事件的选择器.paging li a不匹配,会导致点击事件不触发

修正后的代码

HTML部分

<body>
<!-- 给ul补充paging类,匹配JS选择器 -->
<ul class="paging">
    <li><a class='page-link is-active' data-id=".$prodId." data-link=".$counter.">$counter</a></li>
    <li><a class='page-link' href='$ver=$counter' data-id=".$prodId." data-link=".$counter.">$counter</a></li>
</ul>
 
<div id='display_reviews' class="col-md-7"></div>
</body>

JS部分

$(document).ready(function(){
    // 初始化调用,默认取当前激活的分页链接参数
    let activePage = $('.page-link.is-active');
    getReviews(activePage.data('id'), activePage.data('link'));
 
    $(document).on('click', '.paging li a', function(e){
        e.preventDefault();
        // 切换分页激活样式
        $('.page-link').removeClass('is-active');
        $(this).addClass('is-active');
        // 直接传参调用请求方法,无需重复发请求
        getReviews($(this).data('id'), $(this).data('link'));
    });
 
    // 给函数添加两个入参接收商品id和页码
    function getReviews(id, pageNumber){
        $.ajax({
            type: 'GET',
            url: '/mysite/product/?action=getProductReviews&id='+id+'&page='+pageNumber,
            // 后端返回HTML片段就用html类型,返回JSON数据就改回json
            dataType: 'html',
            success: function(response){
                $('#display_reviews').html(response);
            }
        });
    };
});

额外说明

如果后端确实返回JSON格式的评论数据,需要把dataType改回json,同时在success回调里遍历JSON数据拼接成HTML字符串后,再插入到#display_reviews节点中。

内容的提问来源于stack exchange,提问作者kabivo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:45:01