Как показать гистограмму после вызова ajax? - PullRequest
0 голосов
/ 28 февраля 2019

просмотр:

<script src="<?php echo base_url(); ?>js/canvasjs.min.js"></script>
<script>
    window.onload = function () {
        var chart = new CanvasJS.Chart("chartContainer", {
            animationEnabled: true,
            theme: "light2",
            axisY: {
                title: "Total Resume Uploaded",
                includeZero: false
            },
            data: [{
                type: "column",
                dataPoints: <?php echo json_encode($dataPoints, JSON_NUMERIC_CHECK); ?>
            }]
        });
        chart.render();
    }
    $(document).ready(function(){
        $("#title").change(function(){
            job = $(this).val();
            $.ajax({
                type:"POST",
                data:{"job":job},
                url:"<?php echo base_url(); ?>graph",
                success:function(data){
                    $("#success_graph").html(data);
                }
            });
        });
    });
</script>
<div class="body">
    <div class="col-md-3">
        <select name="title" id="title" class="form-control" style="margin-bottom: 3em;">
            <option>Select Job</option>
            <?php
                $this->db->select('jid,title');
                $this->db->from('job');
                $where = "rid like '%".$rid."%'";
                $this->db->where($where);
                $sql = $this->db->get();
                $result = $sql->result_array();
                foreach($result as $row) 
                {
                    echo '<option value="'.$row['jid'].'">'.$row['title'].'</option>';
                }
            ?>
        </select> 
    </div>
    <div id="success_graph"></div>
    <div id="chartContainer" style="height: 370px; width: 100%;"></div>
</div>

контроллер:

public function graph()
{
    $job = $this->input->post('job');
    $data['uploaded'] = $this->Main_data->Uploaded($job);
    $this->load->view('graph',$data);
}

graph.php

<?php
    $dataPoints = array(
        array("label"=> "Uploaded", "y"=> 5),
    );
?>
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
    var chart = new CanvasJS.Chart("chartContainer", {
        animationEnabled: true,
        theme: "light2",
        title: {
            text: "Resumes"
        },
        axisY: {
            title: "Number of Apps",
            includeZero: false
        },
        data: [{
            type: "column",
            dataPoints: <?php echo json_encode($dataPoints, JSON_NUMERIC_CHECK); ?>
        }]
    });
    chart.render();
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 370px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</body>
</html>

Я пытаюсь создать гистограмму при изменении значения раскрывающегося списка.Теперь, что происходит, когда я использую $dataPoints = array(array("label"=> "Uploaded", "y"=> 2),) без изменения значения выпадающего на то же самое, тогда график хорошо показывает.Но что происходит, когда я хочу нарисовать раскрывающееся значение графика в файле graph.php, который не показывает никаких данных после вызова ajax.Итак, как я могу решить эту проблему?

...