2012-10-10 3 views
0

Je ne suis pas très familier avec JavaScript, mais pour un projet sur lequel je travaille, j'ai besoin de dessiner un graphique en utilisant une entrée de la base de données. Pouvez-vous m'aider avec le transfert des valeurs php au javascript. Je veux juste dessiner un graphique à secteurs en utilisant les données de la base de données.transfert de variable php vers JavaScript

<div id="pie" style="width:250px;height:250px;"> 

    <?php 
     $k=0; 
     if (isset($distrib)){ 
      foreach($distrib as $row){ 
       echo $distrib[$k]['lang']; 
       echo $distrib[$k]['NumArt']; 
       $k++; 
      } 
     } 
    ?>​ 

    <script class="code" type="text/javascript"> 
     $(document).ready(function() { 
      var data = []; 
      var plot1 = jQuery.jqplot('pie', [data], { 
       seriesDefaults: { 
        // Make this a pie chart. 
        renderer: jQuery.jqplot.PieRenderer, 
        rendererOptions: { 
         // Put data labels on the pie slices. 
         // By default, labels show the percentage of the slice. 
         showDataLabels: true 
        } 
       }, 
       legend: { 
        show: false, 
        location: 'e' 
       } 
      }); 
     });​ 
    </script> 

EDIT

Je suis toujours aux prises avec ce problème. Ces graphiques js me tuer.

Voici donc une autre question qui mettra fin à la misère, espérons ma

      if (isset($distrib)){ 
           foreach($distrib as $row){ 
            $p[] = $distrib[$k]['langName']; 
            $s[] = $distrib[$k]['lang']; 
            $q[] = $distrib[$k]['NumArt']; 
            $k++; 
           }} 
          ?><?php $c = array_combine($p, $q); ?> 

         <script class="code" type="text/javascript">$(document).ready(function(){ 


            <?php echo "var s1 = [".implode($c, ",")."];" ?> 
           var plot3 = $.jqplot('pie', [s1], { 

Fondamentalement, au moment où le graphique est l'impression sur numArt, mais il n'imprime pas le langname que je veux. Le nom de Lang stocke des langues dans leur alphabet indigène qui signifie n'importe quoi de l'arabe au zoulou. J'ai essayé d'utiliser JSON sans succès (je manque totalement de connaissances dans ce domaine). Mon encodage d/a été foiré donc j'ai quitté ce chemin.

Mon objectif est de rendre un tableau qui a le nom de la langue et la quantité d'articles pour cette langue.

Voici donc le print_r de
$ p

Array ([0] => aucun [1] => Catal [2] => français [3] => Malti [4] => português [5] => Kiswahili [6] => isiZulu [7] => anglais)

et $ q Tableau ([0] => 1 [1] => 1 [2] => 1 [3] => 2 [4] => 1 [5] => 1 [6] => 1 [7] => 1)

et le combiné $ c Array ([none] => 1 [Catal] = > 1 [français] => 1 [Malti] => 2 [português] => 1 [Kiswahili] => 1 [isiZulu] => 1 [Français] çais] => 1)

En fin de compte je besoin s1 être quelque chose le long de ces lignes

[[ 'none', 1], [ 'français', 1], [ 'Malti', 1] ]


Répondre

1
<script type="text/javascript"> 

var data = [ <?php echo implode(",", $array_of_values); ?> ]; 
<script> 

Assurez-vous que le $array_of_values est un tableau (PHP) contenant les valeurs que vous souhaitez passer dans la variable data (JS).

MISE À JOUR:

$string_array = array(); 
foreach($array as $key=>$value) 
{ 
    $string_array[] = '[' . $key . ',' . $value . ']'; 
} 

ensuite imploser.

+0

c'est tout, merci beaucoup! – Ando

+0

Vous êtes les bienvenus :) – RRikesh

+0

pouvez-vous m'aider avec quelque chose d'autre sur ce même sujet.J'ai décidé de passer une autre variable, et je voudrais l'ajouter à la chaîne de traçage. Donc j'ai deux tableaux et je ne sais pas comment les joindre, donc ça prend le premier segment du premier tableau, puis le premier segment du second et ainsi de suite. $ P [] = $ distrib [$ k] ['langName']; cela fait ressortir Array ([0] => none [1] => Malti [2] => English) et il y en a un autre $ q [] = $ distrib [$ k] ['NumArt']; qui fait ressortir Array ([0] => 1 [1] => 2 [2] => 312) comment puis-je combiner les deux afin que j'ai ['none', 1], ['Malti', 2] etc .. – Ando

0

Je ne suis pas positif si c'est ce que vous cherchez, mais:

Supposons que vous ayez var1 $ = 25 en php. Supposons que vous voulez que enregistré dans var1 pour votre fichier js que vous feriez:

<?php 
    echo $var1=25; 
    echo "var var1=$var1"; 
?> 

S'il vous plaît garder à l'esprit javascript est côté client et PHP est côté serveur, donc 2 n'interagissent pas (sauf ajax, etc.). PHP est exécuté avant d'envoyer la réponse et javascript est exécuté dans le navigateur. Vous le savez peut-être déjà, mais juste pour le doute.

0

Vous n'avez pas indiqué quelles valeurs vous voulez, ou où dans le javascript vous les voulez.

Vous semblez connaître les valeurs PHP echo, donc vous voudriez simplement faire la même chose, sauf dans votre fonction javascript.

0
//... 
$(document).ready(function(){ 

    <?php echo "var data = [".implode($distrib, ",")."];" ?> 

    // ... 
}); 

Stringify le tableau et l'écho d'une déclaration var au javascript.