繁体   English   中英

传入的ajax数据和“如果”条件...?

[英]Incoming ajax data and “if” conditionals…?

对编码来说还算是新手,如果这是基础知识,请抱歉。

我正在开发一个Web应用程序,其中单击“搜索”按钮会触发ajax请求以获取一堆数据,然后使用jQuery .DataTable方法将其用于填充表。

我正在尝试做的是获得相同的搜索按钮单击事件,以根据页面中单独部分上返回的数据显示一个或另一个链接。

更具体地说,搜索单击事件将检索为“帐单”或“指令”的条目/行,并且一次搜索可能会检索两种类型的条目(如果两种类型都存在给定编号(即搜索条件))。 在表上没有显示任何列来指定条目的类型,但是该信息应该是从ajax调用返回的对象的一部分(我认为?); 每个条目都有一个名为“ request_type”的字段,其中“ B”代表帐单,“ I”代表主动权。

如果用户搜索具有初始条目的数字,则我希望指向该初始信息的链接可以在另一个div的表外弹出。 如果该号码包含帐单条目,则应弹出另一个链接。 如果两者都存在,则应弹出两个链接-每个链接一个。

我了解最终我希望有条件的

if (???something saying initiatives and bills are in the returned data???) {

$('#url1Div').html("<a href='" + newURL1 + "' target='_blank'>View bill information</a>");

$('#url2Div').html("<a href='" + newURL2 + "' target='_blank'>View initiative information</a>");

} else if (???just initiatives?? {

$('#url2Div').html("<a href='" + newURL2 + "' target='_blank'>View initiative information</a>");

} else if (???just bills???) {

$('#url1Div').html("<a href='" + newURL1 + "' target='_blank'>View bill information</a>");

};

考虑到我试图使用返回的数据表对象,我只是不知道那些条件应该是什么样子。

起初,我试图从显示的表的标记的一列中读取信息,例如

var initiativeExists;

$('#table tr td:nth-child(3)').each(function () {
                            var texttocheck = this.innerText.trim();
                            if (texttocheck.includes("I")) {                            
                                initiativeExists = true;
                                return false;
                            } 
                            return false;
                        });

然后,我的条件被设置为if(initiativeExists){//做某事}的某个版本。 但是,这直到表已经被填充才起作用,并且当我应该使用原始数据时,尝试从标记中读取内容似乎有些混乱。

太...

我只是缺少某种等待数据返回的方法,然后执行检查以查看是否有任何条目属于“ I”类型。

任何帮助,将尽我所能澄清。 干杯

尝试创建一个单独的AJAX请求以提取数据,以便您可以执行所需的其他逻辑。 然后将结果分配到变量中,以便可以将其传递到数据表,并假设这与您正在使用https://datatables.net/manual/data/的数据表库完全相同。

希望这可以帮助。

最后,我通过使用链接显示逻辑编写了一个单独的回调函数来解决了该问题,然后为.DataTable()使用了“ initComplete”选项。 我在调用ajax.reload()的代码部分中使用了相同的回调函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM