首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter视图-在另一个项目之前添加项目

问Codeigniter视图-在另一个项目之前添加项目
EN

Stack Overflow用户
提问于 2020-04-21 11:48:20
回答 1查看 33关注 0票数 1

我正在使用codeigniter MVC。假设我有一个像这样的json:

代码语言:javascript
复制
[{id:1, parent: null}, {id:2, parent:null}, {id:3, parent:1}]

在我看来,我经历了一个这样的数组,我需要首先用id=1加值,然后用parent=1加值,然后用id=2加值,再用parent=2加值,依此类推(在本例中,id=3被跳过,因为它已经被添加为parent=1)

为此,我有大约300个sql行,而AFAIK我不能按照我需要的顺序创建sql语句(如果这是可能的,它将解决我的问题)。

所以我得另想办法。我想过加载页面并在$(document).ready上进行ajax调用并带来数据,但在这种情况下,我遇到了问题,因为它是一个表单,以防出现错误,我想以用户发送的相同状态重新加载页面。由于PHP将保存此状态,因此我不能通过ajax调用来完成此操作。

我想的另一个解决方案,但我认为从长远来看是困难的,那就是在PHP和JS之间进行混合,比如

代码语言:javascript
复制
<script><?php (parent != null) ? $("#" + parent).append(content)?></script>

但这给我带来了一些麻烦,因为有些内容\n和我无法控制的东西。

有没有人遇到过这样的问题,或者有谁有办法解决它?

我希望避免一种使我多次遍历此数组的解决方案

EN

回答 1

Stack Overflow用户

发布于 2020-04-21 18:16:33

这段代码可能会对你有所帮助。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <style type="text/css">
      #json_container span{
        display: block;
      }
    </style>
</head>
<body>

<div id="json_container"></div>
<script type="text/javascript">
var jsonData = [{id:1, parent: null}, {id:2, parent:null}, {id:3, parent:1}, {id:4, parent:2}];
$jsonContainer = $('#json_container');

$(function(){          
    $.each(jsonData, function(i, item) {
        $elm = '<span id="json_el'+item.id+'">'+item.id+'</span>';
        if($('span#json_el'+item.parent).length > 0)
          $($elm).insertAfter('span#json_el'+item.parent);                  
        else
          $jsonContainer.append($elm);
    });
});
</script>
</body>
</html>

在这里,我添加了跨度来分隔每个元素,并将其显示为块。如果它的父级不存在,它将追加。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61335625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档