DataTables在飞行中改变Ajax URL

时间:2014-08-19 17:31:00

标签: datatables

我正在尝试使用动态ajax方法重新加载我的表来更改URL。我必须通过手动制作的搜索字段过滤结果。

根据API,我可以使用url()方法,但它不起作用。我正在使用昨天下载的DataTables 1.10.2。

这是我的代码:

dTable.ajax.url('newurl.php').load();

我从控制台得到的错误是:

  

TypeError:无法读取未定义的属性“url”

但是如果我为dTable对象做console.log,我就会得到该对象。所以就在那里。

2 个答案:

答案 0 :(得分:4)

显然,DataTables要求在任何事情之前调用api()函数。我个人从来没有在任何地方的文档中找到这个,只在他们的论坛上找到了。

所以最后的命令必须是:

dTable.api().ajax.url('newurl.php').load();

现在允许此功能成功。

答案 1 :(得分:0)

SELECT
Products_List.ID as "Product ID",
Products_List.meta_value as "SKU",
Products_List.post_name as "Product Name",
Products_List.post_title as "Product Title",
'NO' AS "HAS FEATURED Image"
FROM
    Products_List
WHERE
    ID NOT IN (
        SELECT
            Products_List.ID
        FROM
            Products_List
        LEFT JOIN wptt_postmeta ON Products_List.ID = wptt_postmeta.post_id
        WHERE
            wptt_postmeta.meta_key = '_thumbnail_id'
    )
UNION
SELECT
Products_List.ID as "Product ID",
Products_List.meta_value as "SKU",
Products_List.post_name as "Product Name",
Products_List.post_title as "Product Title",
'YES' AS "HAS FEATURED Image"
        FROM
            Products_List
        LEFT JOIN wptt_postmeta ON Products_List.ID = wptt_postmeta.post_id
        WHERE
            wptt_postmeta.meta_key = '_thumbnail_id'

...现在在DataTables v1.10中实际上是正确的,如下所述:

https://datatables.net/reference/api/ajax.url%28%29

,其目的与您的目的相同:即时更改数据源位置(例如向URL添加自定义搜索参数)。

我已经在我自己的应用中实现了这一功能,可以进行动态自定义结果过滤,而且效果非常好。