Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 1 of 1
  1. #1
    New to the CF scene
    Join Date
    Jul 2014
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    When i direclty acces the d3 chart it works perfectly, but won't work through a form

    The following code is one of D3's javascript charts for the webpages with code modified slightly. I tried to assign values such as 2 and 5, and it works, but when I tried to use it as a template page in django, then django would supply both {{fooBarone}} and {{fooBartwo}} with exactly the same values. It doesn't work despite the fact looking at the source code it's the exact same as when I wrote the values myself in the template. Can anyone help? (didn't work with the safe exception)

    Turns out it still doesn't work directly writing the numbers, it only works when I access the file directly (running the file as browser, instead of calling it through a function), but I just tried the same code, once through direct access and the other through a function, only direct access works, so it seems the problem has to do with calling it (still didn't find out the problem)

    Django

    Code:
        def drawPie(request):
            if request.method == 'POST':
                data = request.POST['data']
                context = {'fooBarone': 2, 'fooBartwo': 5}
                return render(request, 'poll/detail.html', context)
    HTML/Javascript
    Code:
            <script type="text/javascript" src="jquery-1.8.2.min.js"></script>
            <script type="text/javascript" src="d3.v2.js"></script>
            <script type="text/javascript" src="d3.ay-pie-chart.js"></script>
            
            <script type="text/javascript">
            var get_pie_data    = function()
            {
                var data    = [];
        
                    data.push({
                        index: 1,
                        name: 'forone',
                        value: {{fooBarone}}
                    });
        
                    data.push({
                        index: 2,
                        name: 'fortwo',
                        value: {{fooBartwo}}
                    });
        
                return data;
            }
            
            $(function(){
                ay.pie_chart('pie-c', get_pie_data(), {group_data: 0});
            });
            </script>
            
            <style>
            html, body { margin: 0; padding: 0; font: 12px/20px monospace; }
            
            .container { overflow: hidden; margin: 20px; }
            
            .chart { float: left; width: 400px; height: 400px; background: #eee; margin: 0 20px 0 0; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
            
            svg { width: 100%; height: 100%; }
            
            path.g-1 { fill: #1f77b4; }
            path.g-2 { fill: #aec7e8; }
            path.g-3 { fill: #ff7f0e; }
            path.g-4 { fill: #ffbb78; }
            path.g-5 { fill: #2ca02c; }
            path.g-6 { fill: #98df8a; }
            path.g-7 { fill: #d62728; }
            path.g-8 { fill: #ff9896; }
            path.g-9 { fill: #9467bd; }
            path.g-10 { fill: #c5b0d5; }
            path.g-11 { fill: #8c564b; }
            path.g-12 { fill: #c49c94; }
            path.g-13 { fill: #e377c2; }
            path.g-14 { fill: #f7b6d2; }
            path.g-15 { fill: #7f7f7f; }
            path.g-16 { fill: #c7c7c7; }
            path.g-17 { fill: #bcbd22; }
            path.g-18 { fill: #dbdb8d; }
            path.g-19 { fill: #17becf; }
            path.g-20 { fill: #9edae5; }
            
            svg > g.label { text-anchor: middle; }
            
            svg > g.labels g.label { -moz-pointer-events: none; -webkit-pointer-events: none; -o-pointer-events: none; pointer-events: none; }
            svg > g.labels g.label rect { stroke: none; fill: #fff; fill-opacity: .5; shape-rendering: crispEdges; }
            svg > g.labels g.label text { font-size: 12px; text-anchor: left; }
            svg > g.labels g.label.active rect { fill-opacity: 1; }
            </style>
        </head>
        <body>
            <div class="container">
                <div class="chart">
                    <svg class="pie-c"></svg>
                </div>
            </div>
    Last edited by VIPStephan; 07-08-2014 at 08:50 PM. Reason: added code BB tags


 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •