2012-10-10 2 views
0

저는 JavaScript에 익숙하지 않지만 제가 작업하고있는 프로젝트에서는 db의 입력을 사용하여 그래프를 그려야합니다. 자바 스크립트로 php 값을 전송하는 것을 도와 주실 수 있습니까? 난 그냥 DB에서 데이터를 사용하여 원형 차트를 그려 싶습니다.php에서 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> 

편집

난 아직이 문제와 사투를 벌인거야. 이 js 차트가 나를 죽이고 있습니다.

그래서 여기 잘하면 내 불행 차트 numArt를 인쇄하는 순간에 기본적으로

      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], { 

종료됩니다 추가 질문이지만, 내가 원하는 langName를 인쇄하지 않습니다. 랭 이름은 아랍어에서 줄 루어까지 모든 것을 의미하는 원어로 언어를 저장합니다. JSON을 사용해 보았는데 성공하지 못했습니다. (저는이 분야에 대한 지식이 전혀 없습니다.) 내 d/인코딩이 엉망이되어서 그 경로를 떠났습니다.

내 목표는 언어의 이름과 해당 언어에 대한 기사의 양을 가진 차트를 렌더링하는 것입니다. 그래서 여기


$ 피

배열에서 인 print_r이다 ([0] => 없음 [1] => Catal [2] => 프랑스어 [3] =는> Malti [4] => 포르투갈어 없다 [5] => Kiswahili [6] => isiZulu [7] => 영문)

및 $ q 배열 ([0] => 1 [1] => 1 [2] => 1 [3]

및 결합 된 $ c 배열 ([none] => 1 [Catal] => 2 [4] => 1 [5] => 1) > 1 [français] => 1 [Malti] => 2 [português] => 1 [Kiswahili] => 1 [isiZulu] => 1 어] => 1) 결국

는 I이 라인을 따라 무언가 S1 내지 필요

[ '없음', 1], [ "프랑스어 ', 1], ['Malti ', 1]

당신이 $ VAR1 = 25 PHP에 있다고 가정 해 봅시다 : 이것이 당신이 찾고있는하지만 경우]


답변

1
<script type="text/javascript"> 

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

는 그냥 $array_of_values 당신이 data 변수 (JS)에 전달할 값을 포함하는 배열 (PHP) 있는지 확인합니다.

UPDATE :

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

그런 다음 내파.

+0

그게 전부 고마워! – Ando

+0

당신은 환영합니다 :) – RRikesh

+0

다른 동일한 변수를 전달하기로 결심했습니다. 플로팅 문자열에이 변수를 추가하고 싶습니다. 그래서 두 개의 배열을 가지고 있고 그것들을 조인하는 방법을 모른다. 따라서 첫 번째 배열의 첫 번째 세그먼트를 취한 다음 두 번째 배열의 첫 번째 세그먼트를 취한다. $ p [] = $ distrib [$ k] [ 'langName']; 이것은 Array ([0] => none [1] => Malti [2] => 영어)를 가져오고 다른 하나는 $ q [] = $ distrib [$ k] [ 'NumArt']; ([0] => 1 [1] => 2 [2] => 312) 배열을 가져와 두 가지를 결합하여 [ 'none', 1], [ 'Malti', 2] 등을 가질 수있는 방법 .. – Ando

0

난 긍정적 아니에요. 당신이 당신의 JS 당신이 할 것 파일에 대해이 var1에 저장하는 것이한다고 가정 :

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

가 클라이언트 측과 PHP입니다 자바 스크립트 명심하시기 바랍니다 것은 따라서 2 (제외 아약스 등) 상호 작용하지 않는, 서버 측이다. PHP는 응답을 보내기 전에 실행되고 javascript는 브라우저에서 실행됩니다. 당신은 이미 그것을 알고 있을지도 모르지만 의심 할 여지가 있습니다.

0

원하는 값이나 자바 스크립트에서 원하는 값을 언급하지 않았습니다.

당신은 echo PHP 값에 익숙한 것 같아요. 그렇다면 자바 스크립트 기능에서 예외를 수행하는 것 외에는 똑같이하고 싶을 것입니다.

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

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

    // ... 
}); 

Stringify 배열과는 JavaScript에 VAR 선언 에코.