Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 如何使用EventHandler创建5个jQueryAjax调用?_Javascript_Jquery_Ajax_Event Handling_Dom Events - Fatal编程技术网

Javascript 如何使用EventHandler创建5个jQueryAjax调用?

Javascript 如何使用EventHandler创建5个jQueryAjax调用?,javascript,jquery,ajax,event-handling,dom-events,Javascript,Jquery,Ajax,Event Handling,Dom Events,我正在为我的学校/工作场所开发一个注册系统,教员需要一份学生的完整列表,这些学生分为5个不同的类别: 未会面且未登记缺勤 未会面,但在上午8点后登记缺勤 未见面但在上午8点前登记缺勤 已会面,但在上午8点后登记缺席原因 在上午8点之前会面并登记 由于第一个(未满足要求且未注册)将在3个数据库中加载学生数据进行检查,获取数据可能需要一些时间。我想我不是通过PHP加载所有数据,而是向用户显示一个白色屏幕,直到所有内容都加载完毕,而是加载页面,然后使用jQueryAjax函数获取数据 AJAX加载

我正在为我的学校/工作场所开发一个注册系统,教员需要一份学生的完整列表,这些学生分为5个不同的类别:

  • 未会面且未登记缺勤
  • 未会面,但在上午8点后登记缺勤
  • 未见面但在上午8点前登记缺勤
  • 已会面,但在上午8点后登记缺席原因
  • 在上午8点之前会面并登记
由于第一个(未满足要求且未注册)将在3个数据库中加载学生数据进行检查,获取数据可能需要一些时间。我想我不是通过PHP加载所有数据,而是向用户显示一个白色屏幕,直到所有内容都加载完毕,而是加载页面,然后使用jQueryAjax函数获取数据

AJAX加载和显示使用以下代码:

//Not met and not registered
div1 = $("#not-met-not-registered");
    div1.find(".text").html("<img src='' class='loader'>");
    $.post("/admin_post/getusers", {area:"not-met-not-registered"}, function(data) {
        div1.find(".text").html(data);

        div1.find("tr").each(function (row) {
            datatable1.push({
                "Row": $(this),
                "Navn": $(this).find("td.navn").html()
            });
        });
    });
该函数将有问题的div保存在
eventObject.data
数组中,并使用该div的id作为PHP页面上的搜索条件。通过将div保存为
eventObject
中的一个值,我将能够在我想到的其他地方使用相同的名称,因为如下图所示,这个想法适用于使用eventhandlers的搜索函数

每个表都有自己的搜索机会,使用功能性的eventhandling代码,尽管尚未完全构建:

$(this).find("input[type=text].search").on("change", {preVal: ""}, function (eventObject) {
    preVal = eventObject.data.preVal;
    curVal = $(this).val();

    if (preVal != curVal) {
        eventObject.data.preVal = curVal;
        alert(curVal);
    }
});

我知道我不是一个非常熟练的JS或JQuery编码人员,也许我已经偏离了最佳实践,或者错过了一些非常明显的东西。不过我真的希望你能帮我

我设法找出了故障所在,我想我会把它贴在这里

因此,出于某种原因,当您在JQuery中调用函数并在其中保存变量时,下次调用同一函数并在变量中保存新值时,新变量将保存在旧函数调用中

现在我将元素e保存在div中

div = e;
当我叫它5次时:

div = 1
div = 2
div = 3
div = 4
div = 5
然后,当AJAX返回时,它看到的是:

div = 5
div = 5
...
通过删除它的div部分,我使它工作起来:

function load_in(e, link, target, data)
{
    $.post(link, {data:data}, function(data) {
        $(e).find(target).html(data);
        enable(e);
        setCount(e);
    });
}
此函数获取e-Element、AJAX指向的链接、希望结果进入的目标以及希望作为POST数据发送的任何数据

可通过以下方式调用:

load_in(this, "/admin_post/getusers", "div.list", $(this).attr("id"));
function load_in(e, link, target, data)
{
    $.post(link, {data:data}, function(data) {
        $(e).find(target).html(data);
        enable(e);
        setCount(e);
    });
}
load_in(this, "/admin_post/getusers", "div.list", $(this).attr("id"));