php에서 ajax로 값 넘기기 (시세변동그래프)
본문
지난 3개월간의 가격변동을 그래프로 표시하고자 합니다.
select it_name, price1, price2, price3 from g5_shop_item where category='과일'
DB에서 값을 가져와 스크립트로 전달하는 겁니다.
1. php에서 ajax로 값을 어떻게 넘기는지?
2. 결과를 아래 사과,포토,딸기 처럼 나타내고 싶은데 루핑을 어떻게 하는지요?
<script>
var startMonth='17년01월'
Highcharts.chart('container', {
title: {text: '시세변동현황'},
yAxis: {title: {text: '가격'}},
legend: {layout: 'vertical', align: 'right',verticalAlign: 'middle'},
plotOptions: {series: {label: {connectorAllowed: false},pointStart: startMonth}},
series: [
{name: '사과', data: [2000, 2500, 3000]},
{name: '포도', data: [1500, 2000, 2000]},
{name: '딸기', data: [5000, 7000, 8000]},
],
responsive: {rules: [{condition: {maxWidth: 500},chartOptions: {legend: {layout: 'horizontal',align: 'center',verticalAlign: 'bottom'}}}]}
});
</script>
* highcharts 입니다.
!-->답변 2
스크립트 내에, php 소스를 포함시키는 방법으로도 됩니다.
정렬은 mysql 쿼리문에서, order by field() 를 이용하는 방법이 있습니다. https://dba.stackexchange.com/q/109120
예제 코드입니다.
<?php
$sql = "select it_name, price1, price2, price3 from g5_shop_item where category='과일' order by FIELD(it_name, '사과', '포도', '딸기') ";
$result = sql_fetch($sql);
?>
<script>
var startMonth='17년01월'
Highcharts.chart('container', {
title: {text: '시세변동현황'},
yAxis: {title: {text: '가격'}},
legend: {layout: 'vertical', align: 'right',verticalAlign: 'middle'},
plotOptions: {series: {label: {connectorAllowed: false},pointStart: startMonth}},
series: [
<?php for ($i = 0; $row = sql_fetch_array($result); $i++) { ?>
{name: '<?php echo $row['it_name'] ?>', data: [<?php echo $row['price1'] ?>, <?php echo $row['price2'] ?>, <?php echo $row['price3'] ?>]},
<?php } ?>
],
responsive: {rules: [{condition: {maxWidth: 500},chartOptions: {legend: {layout: 'horizontal',align: 'center',verticalAlign: 'bottom'}}}]}
});
</script>
따라서 하니 그래프 잘 뜹니다. 감사합니다. 꾸벅
답변을 작성하시기 전에 로그인 해주세요.