jQuery MiniUI

 找回密码
 立即注册
查看: 7857|回复: 10
打印 上一主题 下一主题

关于TREE php (5.4.5)+oracle 11 g R2后台取数JSON问题 ,请技术支持( [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2012-9-9 12:56:58 |只看该作者 |倒序浏览
本帖最后由 dirma 于 2012-9-11 20:54 编辑

listtree json 格式问题:
情况一  OK
[
{ "id":"00001","text":"00001","pid":"00000"},
{ "id":"00002","text":"00002","pid":"00001"},
{ "id":"00003","text":"00003","pid":"00001"}
]
情况二 出错
[
{ "ID":"00001","TEXT":"00001","ID":"00000"},
{ "ID":"00002","TEXT":"00002","ID":"00001"},
{ "ID":"00003","TEXT":"00003","ID":"00001"}
]
情况三 ok

[
{ id:"00001",text:"00001",pid:"00000"},
{ id:"00002",text:"00002",pid:"00001"},
{ id:"00003",text:"00003",pid:"00001"}
]

BUG1  :对于最常见的第2格式不支持,因为ORACLE 输出是大写的"ID","TEXT","ID",该怎么办 ?请指导 ;
效率 BUG 2 :弹出多选树:MultiSelectTree 弹出多选树对于多选树加载后,点击2级节点后 ,下面所有节点均打开了, 对于大的层次较多的节点效率较差,如何实现点击2级节点只打开3级节点而不是展开所有的节点。
BUG 3 弹出多选树:MultiSelectTree 弹出多选树 查询不行

效率比较:大家看看下面三种写法,那种加载树的效能最快。




具体测试环境 PHP (5.4.5)+ORACLE(11G R2)  加载数据5000条
tree.php  ok

------------------------------------------------------------------------------
<?php
header('Content-Type: text/html;charset=utf-8');
$c = oci_pconnect("scott", "tiger","local/mydbOOLED","utf8");
$s = oci_parse($c, 'select /* +result_cache */ *  from tree  ');
oci_execute($s);
//重新整理成id
$tree = array();
while  ($row = oci_fetch_array($s, OCI_ASSOC))
{
    $node = array(
        'id' => $row["ID"],
        'text' => $row["TEXT"],
        'pid' => $row["ID"]
    );
    array_push($tree, $node);
}
$json_tree = json_encode($tree,JSON_UNESCAPED_UNICODE);
echo $json_tree;
oci_free_statement($s);
oci_close($c);
?>
------------------------------------------------------------------------------
listtree.php   出错
<?php
header('Content-Type: text/html;charset=utf-8');
$c = oci_pconnect("scott", "tiger","local/mydbOOLED","utf8");
$s = oci_parse($c, 'select /* +result_cache */ *  from tree  ');
oci_execute($s);
//得到大写ID
echo '[';
while (($row = oci_fetch_object($s)))
{
     if ($row->ID == '0000013')
          {
           echo json_encode($row,JSON_UNESCAPED_UNICODE);
          }
      else{
           echo  ",".json_encode($row,JSON_UNESCAPED_UNICODE);
          }   
}
echo ']';
oci_free_statement($s);
oci_close($c);
?>
------------------------------------------------------------------------------
MultiTree.php ok
<?php
$c = oci_pconnect("scott", "tiger","local/mydbOOLED","utf8");
$s = oci_parse($c, 'select /* +result_cache */ *  from tree  ');
oci_execute($s);
/*字符串拼接 */
echo "[";
while  ($row = oci_fetch_array($s, OCI_ASSOC))
{
if ($row["ID"]=='0000013')
    {
     echo "{";
     echo " id: ";echo json_encode($row["ID"]);
     echo ", text: ";echo json_encode($row["TEXT"],JSON_UNESCAPED_UNICODE);
   //  echo "{pid;".$row["ID"];
     echo ", expanded: true";             //打开所有接点
     echo "}";         
     }
     elseif ($row["ID"]=='0000013') {
      echo ",{";
      echo " id: ";echo json_encode($row["ID"]);
      echo ", text: ";echo json_encode($row["TEXT"],JSON_UNESCAPED_UNICODE);
      echo ", pid: ";echo json_encode($row["ID"]);
      echo ", expanded: false";         
      echo "}";
}  
else{
      echo ",{";
      echo " id: ";echo json_encode($row["ID"]);
      echo ", text: ";echo json_encode($row["TEXT"],JSON_UNESCAPED_UNICODE);
      echo ", pid: ";echo json_encode($row["ID"]);
      echo ", expanded: false";
     echo "}";
     }
}
  echo "]";
oci_free_statement($s);
oci_close($c);
?>



附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 9Rank: 9Rank: 9

沙发
发表于 2012-9-10 09:30:18 |只看该作者
你有没给tree设置idField和parentField?
返回不同的JSON字段,要设置idField和parentField。
另外,请提供完整的JSON数据内容,我们本地给你测试下。

Rank: 1

板凳
发表于 2012-9-10 11:12:52 |只看该作者
如何设置 treeidField和parentField?text 字段

Rank: 8Rank: 8

地板
发表于 2012-9-10 11:16:15 |只看该作者
dirma 发表于 2012-9-10 11:12
如何设置 treeidField和parentField?text 字段

直接在tree上设置属性,textField="text" idField="id"

Rank: 1

5#
发表于 2012-9-10 11:39:45 |只看该作者
本帖最后由 dirma 于 2012-9-10 13:38 编辑

this.tree.set({
            showCheckBox: this.multiSelect,
            style: "width: 100%;height: 100%;",
            borderStyle: "border:0",
            showTreeIcon: true,
            textField: "TEXT",
            idField: "ID",
            parentField: "PID",
            resultAsTree: false,
            showFolderCheckBox: this.showFolderCheckBox,
            checkRecursive: this.checkRecursive


---- 目前可以展现以大写字段的树了,确定也获得不了节点数据 ,查询也不可以 ??

Rank: 9Rank: 9Rank: 9

6#
发表于 2012-9-10 12:44:47 |只看该作者
弹出选择树,建议你用这个例子:
http://www.miniui.com/demo/#src=buttonedit/selectTree.html

Rank: 1

7#
发表于 2012-9-10 13:37:03 |只看该作者
本帖最后由 dirma 于 2012-9-10 13:38 编辑
niko 发表于 2012-9-10 12:44
弹出选择树,建议你用这个例子:
http://www.miniui.com/demo/#src=buttonedit/selectTree.html ...

我就是用的这个例子

textField: "TEXT",
            idField: "ID",
            parentField: "PID",

换成后,树可以展现,但得不到数据,查找也不可以

Rank: 9Rank: 9Rank: 9

8#
发表于 2012-9-10 14:23:42 |只看该作者
你看网站示例,是否是可以的?

Rank: 1

9#
发表于 2012-9-11 20:40:02 |只看该作者
我 用小写的id 和 text 和 pid   都可以,就是大写不可以 ,郁闷啊

Rank: 1

10#
发表于 2012-9-11 20:41:45 |只看该作者
直接在你们的例子上改的 , 小写的可以展现和查询,大写的就不行了,估计需要修改其他部分

Archiver|普加软件

GMT+8, 2024-11-23 07:49 , Processed in 1.043628 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部