안녕하세요.
orgChart차트를 이용해서 조직도를 만들고 있습니다.
디비에서 회원 데이터를 받아와서 조직도를 출력하려고 하는데요
orgChart에서 샘플로 만든것과 같은 형식으로 데이터를 변수에 담았습니다.
아래가 orgChart에서 샘플로 있던 데이터인데요
Copy
var testData = [{id: '1000001', name: '001', parent: '0'},{id: '1000002', name: '002', parent: '1000001'},{id: '1000003', name: '003', parent: '1000001'},{id: '1000004', name: '004', parent: '1000001'},{id: '1000005', name: '005', parent: '1000002'},{id: '1000006', name: '006', parent: '1000002'},{id: '1000007', name: '007', parent: '1000002'},{id: '1000008', name: '008', parent: '1000003'},{id: '1000009', name: '009', parent: '1000003'},{id: '1000010', name: '010', parent: '1000003'},{id: '1000011', name: '011', parent: '1000004'},{id: '1000012', name: '012', parent: '1000004'},{id: '1000013', name: '013', parent: '1000004'}];
저는 디비에서 회원들의 id와 name, parent를 뽑아 같은 형식으로 변수에 담았습니다.
Copy
$sql = "select * from test1 order by idx asc";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$array_mem[] = "{id: '".$row['id']."', name: '".$row['name']."', parent: '".$row['parent']."'}";
}
$str = implode(',', $array_mem);
$str = "[".$str."]";
위와 같이 하니까 아래와 같이 출력이 됩니다.
Copy
[{id: '1000001', name: '001', parent: '0'},{id: '1000002', name: '002', parent: '1000001'},{id: '1000003', name: '003', parent: '1000001'},{id: '1000004', name: '004', parent: '1000001'},{id: '1000005', name: '005', parent: '1000002'},{id: '1000006', name: '006', parent: '1000002'},{id: '1000007', name: '007', parent: '1000002'},{id: '1000008', name: '008', parent: '1000003'},{id: '1000009', name: '009', parent: '1000003'},{id: '1000010', name: '010', parent: '1000003'},{id: '1000011', name: '011', parent: '1000004'},{id: '1000012', name: '012', parent: '1000004'},{id: '1000013', name: '013', parent: '1000004'}]
기존 샘플에 있던것과 완전히 같은 형식으로 데이터가 변수에 담겨있는데요...문제는 이걸 javascript변수
에 담으면 차트가 안나오네요;;;
Copy
$sql = "select * from test1 order by idx asc";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$array_mem[] = "{id: '".$row['id']."', name: '".$row['name']."', parent: '".$row['parent']."'}";
}
$str = implode(',', $array_mem);
$str = "[".$str."]";
<script type="text/javascript">
var ddd = "<?php echo $str;?>";
//alert(ddd);
//console.log ddd;
var testData = [{id: '1000001', name: '001', parent: '0'},{id: '1000002', name: '002', parent: '1000001'},{id: '1000003', name: '003', parent: '1000001'},{id: '1000004', name: '004', parent: '1000001'},{id: '1000005', name: '005', parent: '1000002'},{id: '1000006', name: '006', parent: '1000002'},{id: '1000007', name: '007', parent: '1000002'},{id: '1000008', name: '008', parent: '1000003'},{id: '1000009', name: '009', parent: '1000003'},{id: '1000010', name: '010', parent: '1000003'},{id: '1000011', name: '011', parent: '1000004'},{id: '1000012', name: '012', parent: '1000004'},{id: '1000013', name: '013', parent: '1000004'}];
</script>
<script type="text/javascript">
$(function(){
org_chart = $('#orgChart').orgChart({
data: ddd,
showControls: false,
allowEdit: false,
onAddNode: function(node){
log('Created new node on node '+node.data.id);
org_chart.newNode(node.data.id);
},
onDeleteNode: function(node){
log('Deleted node '+node.data.id);
org_chart.deleteNode(node.data.id);
},
onClickNode: function(node){
log('Clicked node '+node.data.id);
}
});
});
// just for example purpose
function log(text){
$('#consoleOutput').append('<p>'+text+'</p>')
}
</script>
data: ddd로 하면 차트가 안나오고 testData로하면 정상적으로 나옵니다....
ddd의 내용도 testData와 동일한데 왜 ddd로 하면 안나오고 testData처럼 해야지 나오는걸까요;;;
|
답변 2개 / 댓글 5개
채택된 답변
+20 포인트
4년 전
var ddd = "<?php echo $str;?>";
==>
var ddd = <?php echo $str;?>;
답변에 대한 댓글 2개
4년 전
아래처럼 <?php ?>로 감싸도 뭔가 나오나요?
<?php
$sql = "select * from test1 order by idx asc";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$array_mem[] = "{id: '".$row['id']."', name: '".$row['name']."', parent: '".$row['parent']."'}";
}
$str = implode(',', $array_mem);
$str = "[".$str."]";
?>
답변에 대한 댓글 3개
4년 전
<script>
<?php
$str = "[{id: '1000001', name: '001', parent: '0'},{id: '1000002', name: '002', parent: '1000001'},{id: '1000003', name: '003', parent: '1000001'},{id: '1000004', name: '004', parent: '1000001'},{id: '1000005', name: '005', parent: '1000002'},{id: '1000006', name: '006', parent: '1000002'},{id: '1000007', name: '007', parent: '1000002'},{id: '1000008', name: '008', parent: '1000003'},{id: '1000009', name: '009', parent: '1000003'},{id: '1000010', name: '*** 개인정보보호를 위한 휴대폰번호 노출방지 ***'},{id: '1000011', name: '*** 개인정보보호를 위한 휴대폰번호 노출방지 ***'},{id: '1000012', name: '012', parent: '1000004'},{id: '1000013', name: '013', parent: '1000004'}]";
?>
var ddd = <?=$str?>;
console.log(ddd);
</script>
위와 같이 바꿔보세요. 잘 동작하네요
<?php
$str = "[{id: '1000001', name: '001', parent: '0'},{id: '1000002', name: '002', parent: '1000001'},{id: '1000003', name: '003', parent: '1000001'},{id: '1000004', name: '004', parent: '1000001'},{id: '1000005', name: '005', parent: '1000002'},{id: '1000006', name: '006', parent: '1000002'},{id: '1000007', name: '007', parent: '1000002'},{id: '1000008', name: '008', parent: '1000003'},{id: '1000009', name: '009', parent: '1000003'},{id: '1000010', name: '*** 개인정보보호를 위한 휴대폰번호 노출방지 ***'},{id: '1000011', name: '*** 개인정보보호를 위한 휴대폰번호 노출방지 ***'},{id: '1000012', name: '012', parent: '1000004'},{id: '1000013', name: '013', parent: '1000004'}]";
?>
var ddd = <?=$str?>;
console.log(ddd);
</script>
위와 같이 바꿔보세요. 잘 동작하네요
답변을 작성하려면 로그인이 필요합니다.