Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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
Php 大海捞针jQuery_Php_Jquery_Ajax_Json - Fatal编程技术网

Php 大海捞针jQuery

Php 大海捞针jQuery,php,jquery,ajax,json,Php,Jquery,Ajax,Json,基本上,我正在动态地为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 `vid

基本上,我正在动态地为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));
{"IdList":["47","55"]}
我的动态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));
{"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调用输出的示例数据


正如您所看到的,我试图使用
jQuery.inArray()
但没有效果,我不知道为什么,因为我可能只是在解析一些错误的东西可能是
Ids
在第二次
ajax调用之前没有设置数据。将第二个
ajax
调用第一个
ajax
call
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");
    }
});

向我们展示
数据的外观
$ID=$ID->videoId是错误的。在每次迭代中覆盖该值。另外,您不需要
jQuery.parseJSON
,您可以在AJaX调用中指定返回内容类型,它将被自动解析。它应该是
id=v.id
@约翰-我已经做到了such@DevZer0它可以是或