0

基本上,我正在为 Javascript 动态生成一个JSON 数组,然后我正在执行一个 Ajax 调用,它从 API 返回JSON数据,我想检查来自Ajax JSON 响应的对象内的值,看看它是否与我的匹配JSON 数组,我尝试过以下操作:

我的动态 JSON 数组- JSON.php

global $wpdb;
$Ids = array();
$table_name = $wpdb->prefix . "videos";
$idList = $wpdb->get_results("SELECT `videoId` FROM `$table_name`");
foreach($idList as $ID) {
     $Ids[] = $ID->videoId;
}
echo json_encode(array('IdList' => $Ids));

我的动态 JSON 输出示例- JSON.php

{"IdList":["47","55"]}

我的动态 JSON 数组- Javascript

var Ids = null;
jQuery.ajax({
    type: "GET",
    url: pluginURL + "/JSON.php",
    data: "ajaxAction=getIds&rand="+Math.floor(Math.random()*10000),
    success: function(data) {
        Ids = jQuery.parseJSON(data);
    },
    error: function() {
        alert("Error");
    }
});

这就是生成存储在我的数据库中的 ID 数组的代码,然后我想使用AJAX调用从 API 返回JSON 响应来检查这些 ID,这是返回 API 响应的代码

jQuery.ajax({
    type: "GET",
    url: apiURL + "video/" + Username,
    success: function(data) {
        Parsed = jQuery.parseJSON(data);
        jQuery.each(Parsed.user_media, function(i,v){
            id = v['id'];
            if(jQuery.inArray(id,Ids['IdList']) !== -1) {
               //this isn't working!
            }
        });
    },
});

AJAX 调用的示例数据输出

{"user_media":[{"id":"2"},{"id":"44"}]}

如您所见,我尝试使用jQuery.inArray()无济于事,我不确定为什么,因为我可能只是解析错误

4

1 回答 1

0

可能是Ids在 second 之前没有设置数据ajax callajax在第一次ajax通话时包装第二次通话,success如下所示:

var Ids = null;
jQuery.ajax({
    type: "GET",
    url: pluginURL + "/JSON.php",
    data: "ajaxAction=getIds&rand=" + Math.floor(Math.random() * 10000),
    success: function(data) {
        Ids = jQuery.parseJSON(data);

        jQuery.ajax({
            type: "GET",
            url: apiURL + "video/" + Username,
            success: function(data) {
                Parsed = jQuery.parseJSON(data);
                jQuery.each(Parsed.user_media, function(i, v) {
                    id = v['id'];
                    if (jQuery.inArray(id, Ids['IdList']) !== -1) {
                        //this isn't working!
                    }
                });
            },
        });
    },
    error: function() {
        alert("Error");
    }
});
于 2013-07-15T12:46:36.623 回答