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

时间:2019-07-03 00:07:51

标签: javascript jquery ajax datatables

编码新手,很抱歉,如果这是基本...

我正在开发一个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”类型。

任何帮助,我们都会尽力澄清。干杯

2 个答案:

答案 0 :(得分:0)

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

希望这会有所帮助。

答案 1 :(得分:0)

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