Как использовать строковую переменную из PHP-файла в JavaScript в HTML - PullRequest
0 голосов
/ 10 октября 2011

Моя конечная цель - преобразовать данные из базы данных в массив, затем я могу напечатать довольно хороший график с помощью плагина jquery "flot" в HTML-файл:

<script language="javascript" type="text/javascript" src="jquery.flot.js"></script>
<script type="text/javascript" >
$(function test() {   
var d3= [[0, 3], [4, 8], [8, 5], [9, 13]];   
$.plot($("#placeholder"), [d3]);
});
</script> 

в php файле

echo"<script language='javascript' >\n";  
$k = 0;  
    $agevi = mysql_result($result, $k, "Age"); 
    $snvi = mysql_result($result, $k, "StuNo"); 
settype($agevi, "integer"); 
settype($snvi, "integer"); 
$smallarray = array($snvi,$agevi);  
    $bigarray = array($smallarray);
    $i++;   
while ($i < $number) 
    { 
      $agev = mysql_result($result, $i, "Age"); 
  $snv = mysql_result($result, $i, "StuNo");  
  settype($agev, "integer"); 
  settype($snv, "integer");  
  $smallarray = array($snv,$agev);   
  array_replace($smallarray,$smallarray);
  array_push($bigarray,$smallarray); 
  echo"\n"; 
  $i++;    
  }  
  echo 'var stunoarr = '.json_encode($bigarray).';'; 
  }    
      echo"\n</script>";  
  echo  json_encode($bigarray) ; 
      echo "\ndocument.write(\"bigarray array is: <b>" . json_encode($bigarray) .  "</b>\")";    
      mysql_free_result($result); 
      mysql_close();  

Что я имею в выводе php - это работа:

[[1,12], [2,5], [3,6], [4,2], [5,7], [6,2], [7,12], [8,3 ], [9,6], [10,8], [11,4]] document.write ("массив bigarray - это: [[1,12], [2,5], [3,6], [4] , 2], [5,7], [6,2], [7,12], [8,3], [9,6], [10,8], [11,4]] ")

так что люди, предлагающие использовать JSON, да, я сделал, и я также положил

<script>
var myvar = <?= json_encode($bigarray); ?>; 
</script>

в конце php файла снаружи?>

как именно получить переменную из php в javascript для того, чтобы создать график ...? пробовал множество способов, теперь все еще не работает ... заранее спасибо! : D

1 Ответ

1 голос
/ 10 октября 2011
in javascript file

<script language="javascript" type="text/javascript" src="jquery.flot.js"></script>
<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript" >
    $(function test() {
    getData();
    });
    function getData(){
      $.ajax({
                    url: "yourfile.php",
                    type: "GET",
                    data: '',
                    cache: false,
                    success: function (result) {
                        showGraph(result);
                    }
            });
    }
function showGraph(data){
 $(data).find('node').each(key,val){
  var age = $(val).find('agev').text();
  var stuno = $(val).find('snv').text();
  // populate your d3 array here
}
$.plot($("#placeholder"), [d3]);
}
    </script>

в yourfile.php

header('Content-Type: text/xml');

$k = 0;  
    $agevi = mysql_result($result, $k, "Age"); 
    $snvi = mysql_result($result, $k, "StuNo"); 
settype($agevi, "integer"); 
settype($snvi, "integer"); 
$smallarray = array($snvi,$agevi);  
    $bigarray = array($smallarray);
$resultXML = new SimpleXMLElement(stripslashes('<data></data>'));
    $i++;   
while ($i < $number) 
    { 
      $agev = mysql_result($result, $i, "Age"); 
  $snv = mysql_result($result, $i, "StuNo");  
  settype($agev, "integer"); 
  settype($snv, "integer");  
  $temp = $resultXML->addChild('node');
  $temp->addChild('snv',$snv);
  $temp->addChild('agev',$agev);
  $i++;    
  }  

  }    
     mysql_free_result($result); 
      mysql_close();  
echo $resultXML->asXML();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...