Php 大海捞针jQuery
基本上,我正在动态地为Javascript生成一个JSON数组,然后我正在执行一个Ajax调用,从API返回JSON数据,我想检查Ajax JSON响应中的对象内部的值,看看它是否与我的JSON数组匹配,我试着做了以下几点: 我的动态JSON数组-JSON.phpPhp 大海捞针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
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
callsuccess
包装如下:
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它可以是或