www.webdeveloper.com
Results 1 to 2 of 2

Thread: when i use static variables the d3 chart works perfectly, but won't work for dynamic

  1. #1
    Join Date
    Jul 2014
    Posts
    2

    when i use static variables the d3 chart works perfectly, but won't work for dynamic

    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? (EDIT:- didn't work with the safe exception)

    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>

  2. #2
    Join Date
    Jul 2014
    Posts
    2
    Can't find an edit button, so I will just add this information here (the edit above is from original stackoverflow thread)
    Edit:- 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)

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

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



Recent Articles