Archief - parameters doorgeven lukt niet

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

hydraa

Legacy Member
Hallo,

Ik probeer een pie-chart weer te geven op mijn website maar dit lukt maar niet. de userinfo.php krijgt een username mee uit de main pagina. De userinfo.php haalt vervolgens al de gegevens uit de database en print deze uit. Voor de pie chart echter, moet er nog een data_pie.php worden aangeroepen die 3 parameters nodig heeft. Het lukt me wel om 1 parameter aan deze file mee te geven, maar om een of andere reden niet om ze alle 3 door te geven.


Dit is dus het gedeelte javascript in de userinfo.php. Nu moet ik 3 parameters meegeven aan de data_pie.php wat ik hier probeer met een stukje php code in het javascript. Dit werkt voor de eerste parameter die ik doorgeef, maar niet voor de 2 andere. de wins worden in dit geval dus wel doorgegeven en de rest niet. voor een voorbeeld: www.Dota-Planet.com - Instant Dota Clan games
Code:
<script type="text/javascript">
swfobject.embedSWF(
"PHP/open-flash-chart.swf", "my_chart",
"215", "160", "9.0.0", "expressInstall.swf",
{"data-file":"/PHP/data_pie.php<?php echo ("?wins=".$f1."&losses=".$f2."&discs=".$f3); ?>"} );

$(document).ready(function(){
$("#resize").resizable();
});
</script>

Als ik rechtstreeks in mijn browser iets als het volgende ingeef lijkt hij het namelijk wel goed te doen...
http://www.dota-planet.com/PHP/data_pie.php?wins=56&losses=15&discs=14

Iemand die ziet wat er fout aan kan zijn? Als je meer code ofzo wilt zien vraag je maar...

Alvast bedankt,
Hydra

Curahee Q

Legacy Member
Al eens in je bron gekeken of er echt wel de output staat die je verwacht?

hydraa

Legacy Member
Goed om weten dat dit te checken valt met de broncode. Had ik niet aan gedacht...

Maar ik heb het nagekeken en de output is wel degelijk wat ik verwacht had:
Ook op de site zelf kan je met de muis over de pie chart gaan en zie je de juiste waarde voor de wins...
De wins worden dus wel degelijk goed doorgegeven, maar helaas de losses en discs niet en ik heb geen flauw idee waarom deze dan niet werken...

<script type="text/javascript">
swfobject.embedSWF(
"PHP/open-flash-chart.swf", "my_chart",
"215", "160", "9.0.0", "expressInstall.swf",
{"data-file":"/PHP/data_pie.php?wins=102&losses=21&discs=2"} );

$(document).ready(function(){
$("#resize").resizable();
});
</script>

GivenToFly

Legacy Member
Je moet je URL encoden lijkt me. Verander de & eens door %26

hydraa

Legacy Member
jaaaa nu geeft hij ze wel door...
www.Dota-Planet.com - Instant Dota Clan games

Hoe kom je in hemelsnaam op die %26??


De grafiek wilt hij nog steeds wel niet deftig weergeven maar dat zal dan wel aan die data_pie.php liggen of aan open flash chart. Geen ervaring mee zeker?

<?php
include 'php-ofc-library/open-flash-chart.php';

$a1=$_GET['wins'];
$a2=$_GET['losses'];
$a3=$_GET['discs'];

if(($a1+$a2+$a3)==0) {$noemer=1;}
else {$noemer=$a1+$a2+$a3;}

$d = array();
$d[] = new pie_value($a1, number_format((($a1/($noemer))*100),1)."%"); // <-- green
$d[] = new pie_value($a2, number_format((($a2/($noemer))*100),1)."%"); // <-- red
$d[] = new pie_value($a3, number_format((($a3/($noemer))*100),1)."%"); // <-- dark grey

$pie = new pie();
$pie->start_angle(0)
//->colour('#A2ACBA')
//->bg_color='#FF0000'
->add_animation( new pie_fade() )
->add_animation( new pie_bounce(4) )
// ->label_colour('#432BAF') // <-- uncomment to see all labels set to blue
->gradient_fill()
->tooltip( '#val# of #total#<br>#percent#' )
->colours(
array(
'#00FF00', // <-- green
'#FF0000', // <-- red
'#BDBDBD', // <-- light grey
) );

$pie->set_values( $d );

$chart = new open_flash_chart();
$chart->add_element( $pie );
$chart->set_bg_colour('#000000');

echo $chart->toPrettyString();
?>
Ik zie hier namelijk ook niet echt veel fout in maarja ik zal nog eerst eens verder zoeken...

Curahee Q

Legacy Member
Zo komen we aan %26 ;)
HTML URL Encoding Reference

Kan je ook niet gewoon &amp; gebruiken? Weet niet of dit hetzelfde effect geeft, mocht je geen zin hebben om het te checken laat je het maar, zou het wel willen weten ;).

GivenToFly

Legacy Member
Uw grafiek wordt nu niet goed weergegeven omdat de data-waarden in je JSON-input strings zijn. Dus in javascript wordt het totaal "102" + "21" + "2" => "102212" waardoor de percentages niet juist worden berekend. Je kan eens proberen de variabelen in de PHP-file te typecasten naar integers of floats.

PHP:
$integer = (int) $var;

GivenToFly

Legacy Member
Curahee Q zei:
Zo komen we aan %26 ;)
HTML URL Encoding Reference

Kan je ook niet gewoon &amp; gebruiken? Weet niet of dit hetzelfde effect geeft, mocht je geen zin hebben om het te checken laat je het maar, zou het wel willen weten ;).

&amp; is de HTML-code en vermits er hier niets door HTML gebeurt, zou ik denken dat dat niet werkt.

hydraa

Legacy Member
Curahee Q zei:
Zo komen we aan %26 ;)
HTML URL Encoding Reference

Kan je ook niet gewoon &amp; gebruiken? Weet niet of dit hetzelfde effect geeft, mocht je geen zin hebben om het te checken laat je het maar, zou het wel willen weten ;).

Ik heb het getest maar dan doet hij terug gelijk in het begin enkel de eerste doorgeven. Het werkt dus niet...

Uw grafiek wordt nu niet goed weergegeven omdat de data-waarden in je JSON-input strings zijn. Dus in javascript wordt het totaal "102" + "21" + "2" => "102212" waardoor de percentages niet juist worden berekend. Je kan eens proberen de variabelen in de PHP-file te typecasten naar integers of floats.

PHP:
$integer = (int) $var;

Typecasten naar integer, waarom kom ik toch zelf niet op zo'n dingen :doh:


Nu werkt het heel mooi allemaal! Jullie zijn allemaal heel hard bedankt!!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan