我正在为客户创建一份调查问卷,要求将问题按3层进行组织.我已经成功创建了UI,但是我一直在尝试过去3个小时从数据库中提取数据,以便所有内容都加载到正确的位置.数据库由客户端组织,所以我无法控制它:
id description parentId
1 Level 1 0
2 Level 2 0
3 Level 1a 1
4 Level 1b 1
5 Level 1a1 3
Run Code Online (Sandbox Code Playgroud)
我在网站上发现了一个类似的问题但是当我尝试它的解决方案时,我在infinetly上得到以下信息:
码:
function makeList($par_id = 0) {
//your sql code here
$result = mysql_query("SELECT * FROM pB_test WHERE parentId = $par_id");
$pages = mysql_fetch_array( $result );
if (count($pages)) {
echo '<ul>';
foreach ($pages as $page) {
echo '<li>', $page['description'];
makeList($page['parentId']);
echo '</li>';
}
echo '</ul>';
}
}
makeList();
Run Code Online (Sandbox Code Playgroud)
输出:
1
3
5
5
l
l
3 …Run Code Online (Sandbox Code Playgroud) 我需要搜索JSON数据并查找包含"kind""播放列表"的每个对象,然后浏览轨道并提取将放入hmtl列表的信息.问题是在某些情况下(取决于URL的类型)而不是包含所有对象的多维数组,json信息只是一个单个对象.
以下是两种网址类型.
这是一个播放列表,只包含一个级别的信息. http://api.soundcloud.com/playlists/1980151.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd
这是一个只包含多个播放列表作为对象的数组. http://api.soundcloud.com/users/dubstep/playlists.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd
我目前的代码是这样的:
$.getJSON('http://api.soundcloud.com/users/dubstep/playlists.json?client_id=bcc776e7aa65dbc29c40ff21a1a94ecd', { get_param: 'value' }, function(url_data) {
$.each(url_data, function (i, elem) {
if (elem.kind === 'playlist') {
$.each(elem.tracks, function (i, elem) {
console.log(elem.title);
});
}
});
Run Code Online (Sandbox Code Playgroud)
});
它仅在处理有多个播放列表的"用户"网址时才有效.
总结我的问题是什么,我需要一种方法来搜索数组的所有级别,以找到类型===播放列表的级别.