자바스크립트 변수 질문 드립니다. (feat. orgChart) 채택완료
안녕하세요.
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."]";
var ddd = "";
//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'}];
$(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(''+text+'')
}
data: ddd로 하면 차트가 안나오고 testData로하면 정상적으로 나옵니다....
ddd의 내용도 testData와 동일한데 왜 ddd로 하면 안나오고 testData처럼 해야지 나오는걸까요;;;
답변 2개
채택된 답변
+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>
위와 같이 바꿔보세요. 잘 동작하네요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인