Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX代码有点不对劲_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript AJAX代码有点不对劲

Javascript AJAX代码有点不对劲,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个产品类别和子类别的菜单页面。 类别有一个类“category”,子类别有一个类“subcategory”。当单击其中一个时,一些AJAX将类别发送到一些php以编译html,然后AJAX将html发送回页面以填充一个div。这部分工作正常 代码中有一个函数可以分割返回的记录。假设有6条记录,页面一次显示2条,那么有3页。我得到了正确数量的页面显示(1 2 3),但所有6条记录都显示在每个页面上 有人看到问题了吗 $('a.category, a.subcategory').click(f

我有一个产品类别和子类别的菜单页面。 类别有一个类“category”,子类别有一个类“subcategory”。当单击其中一个时,一些AJAX将类别发送到一些php以编译html,然后AJAX将html发送回页面以填充一个div。这部分工作正常

代码中有一个函数可以分割返回的记录。假设有6条记录,页面一次显示2条,那么有3页。我得到了正确数量的页面显示(1 2 3),但所有6条记录都显示在每个页面上

有人看到问题了吗

$('a.category, a.subcategory').click(function (e) {
    // first stop the link to go anywhere
    e.preventDefault();
    // get the class of the link
    var linkClass = $(this).attr("class");
    //get the text of the link by converting the clicked object to string
    var linkText = new String(this);
    // the value after the last / is the category ID
    var categoryValue = linkText.substring(linkText.lastIndexOf('/') + 1);
    // put the post parameters into 'params' to pass through the AJAX post request
    var params = {};
    params[linkClass] = categoryValue;
    // send the category ID to the getProductData.php script using jquery ajax post method
    // send along a category ID
    // on success insert the returned text into the chosen div
    $.post('../inc/showproducts.php', params, function (data) {
        //find total number of records
        var totalRecords = $(data).length;
        //define how many records shown per page
        var pageSize = 2
        //work out number of pages needed to hold records
        var numOfPages = Math.ceil(totalRecords / pageSize);
        //make page links
        var i,
        pageLinks = '<div class="pageLinks">';
        for (i = 0; i < numOfPages; i++) {
            pageLinks += '<a href="#" onclick="showProductPage(' + i + ');return false;">' + (i + 1) + '<\/a> ';
        }
        pageLinks += '<\/div>';
        //display returned data and page links in chosen div (.showproduct)
        $('.showproduct').html(pageLinks + data);
        showProductPage(0);
    });
});
//function to slice up records into pages
function showProductPage(pageNo) {
    var perPage = 2;
    var start = pageNo * perPage;
    var end = start + perPage;
    $('.image').hide().filter(function (index) {
        return ((index > (start - 1)) && (index < end));
    }).show();
}
$('a.category,a.subcategory')。单击(函数(e){
//先停止链接,然后再去任何地方
e、 预防默认值();
//获取链接的类
var linkClass=$(this.attr(“类”);
//通过将单击的对象转换为字符串来获取链接的文本
var linkText=新字符串(此字符串);
//最后一个/后面的值是类别ID
var categoryValue=linkText.substring(linkText.lastIndexOf('/')+1);
//将post参数放入“params”以通过AJAX post请求
var params={};
参数[linkClass]=类别值;
//使用jquery ajax post方法将类别ID发送到getProductData.php脚本
//发送一个类别ID
//成功后,将返回的文本插入所选的div
$.post('../inc/showproducts.php',参数,函数(数据){
//查找记录的总数
var totalRecords=$(数据).length;
//定义每页显示多少条记录
var pageSize=2
//计算出保存记录所需的页数
var numopages=Math.ceil(totalRecords/pageSize);
//制作网页链接
var i,
页面链接=“”;
对于(i=0;i(开始-1))&(索引<结束));
}).show();
}
数据变量仍然包含所有记录。您必须使用基于pageSize*pageNum进行迭代的for循环来获取每个数据[position]。所以第1页看起来像

var iterationSize = pageSize  * pageNum; //(2 * 1 = 2)
var i;
var j = 0;
var pageData[];
for(i = pageNum - 1; i < iterationSize; i++, j++){
    pageData[j] = data[i];
}

$('.showproduct').html(pageLinks + pageData.join(''));
var iterationSize=pageSize*pageNum//(2 * 1 = 2)
var i;
var j=0;
var pageData[];
对于(i=pageNum-1;i
FFS您不需要记录每一条语句。这会让你的代码变得不可读。这是为了学校可能的工作,来吧,你难道不知道现在全国所有的大学都在用Stack为他们做作业;)@Michelle有时教授(或架构师)会编写带有注释的伪代码流,然后期望学生(或开发人员)编写与伪代码匹配的工作代码。看起来很像。FWIW OP没有征求关于他的评论风格的意见。谢谢大家,这不是为了学校。我30多岁了。但我很抱歉用这么多的评论来帮助我记住什么,也许还能学到什么。顺便说一下,谢谢你的-1。你一定很棒…………我来自北爱尔兰,我们需要幽默感才能留在这里!我仍然不认为有人需要-1。我的问题不是‘我有很多评论吗?’谢谢Brian,我会试试看,看看我会怎么做!!如何获取pageNum?pageNum已被传递到showProductPage()函数,您将其称为“pageNo”。你对这段代码有很好的理解吗,这是你的家庭作业吗?这不是家庭作业,布莱恩,我不去学校/大学等。我正在自己做一个网站,并试图边做边学。我对代码不是很了解,这是我从网上学到的东西。我不知道该把你的代码放在哪里,当我尝试时,点击链接只会导致cat_id被用作链接此服务器上不存在www.yoursite.com/4“我显然做错了!”!!我明白了,是的,我的答案已经写好了,假设您自己编写了代码,并且知道要集成我的建议解决方案以查看它是否有效,您能为我将整个代码放在JSFIDLE上吗?
var iterationSize = pageSize  * pageNum; //(2 * 1 = 2)
var i;
var j = 0;
var pageData[];
for(i = pageNum - 1; i < iterationSize; i++, j++){
    pageData[j] = data[i];
}

$('.showproduct').html(pageLinks + pageData.join(''));