在javascript包装的php语句上循环使用php

Looping with php over a php-Statement wrapped in javascript

本文关键字:php 循环 语句 包装 javascript      更新时间:2023-09-26

我正在使用dygraphs来绘制图形。我使用数据库来存储我需要的所有值。要使用dygraphs,我必须使用javascript。但是从数据库获取的数据需要动态地填充dygraphs构造函数。我可以这样做,但这不是动态的,也不是我需要的。

<script type="text/javascript">
        g = new Dygraph(
            document.getElementById('graphdiv'),
            "Travel(mm),Force(N)'n"+
            "0,0'n"+
            "<?php  $sql = "SELECT daten FROM azubi3 where pau_table_id=2";
                    $result = pg_query($sql);
                    $row = pg_fetch_row($result);
                    $toEcho = str_replace("{","[",$row[0]);
                    $toEcho = str_replace("}","]",$toEcho);
                    $toEcho = json_decode($toEcho);
                    echo $toEcho[0][0].','.$toEcho[0][1].''n';
                    ?>"+
            "<?php  echo $toEcho[1][0].','.$toEcho[1][1].''n';?>"+
            "<?php  echo $toEcho[2][0].','.$toEcho[2][1].''n';?>"+
            "<?php  echo $toEcho[3][0].','.$toEcho[3][1].''n';?>"+
            "<?php  echo $toEcho[4][0].','.$toEcho[4][1].''n';?>"+
            "<?php  echo $toEcho[5][0].','.$toEcho[5][1].''n';?>"+
            "<?php  echo $toEcho[6][0].','.$toEcho[6][1].''n';?>"+
            "<?php  echo $toEcho[7][0].','.$toEcho[7][1].''n';?>"+
            "<?php  echo $toEcho[8][0].','.$toEcho[8][1].''n';?>"+
            "<?php  echo $toEcho[9][0].','.$toEcho[9][1].''n';?>"+
            "<?php  echo $toEcho[10][0].','.$toEcho[10][1].''n';?>"+
            "<?php  echo $toEcho[11][0].','.$toEcho[11][1].''n';?>"+
            "<?php  echo $toEcho[12][0].','.$toEcho[12][1].''n';?>"+
            "<?php  echo $toEcho[13][0].','.$toEcho[13][1].''n';?>"+
            "<?php  echo $toEcho[14][0].','.$toEcho[14][1].''n';?>"+
            "<?php  echo $toEcho[15][0].','.$toEcho[15][1].''n';?>"+
            "<?php  echo $toEcho[16][0].','.$toEcho[16][1].''n';?>"+
            "<?php  echo $toEcho[17][0].','.$toEcho[17][1].''n';?>"+
            "<?php  echo $toEcho[18][0].','.$toEcho[18][1].''n';?>"+
            "<?php  echo $toEcho[19][0].','.$toEcho[19][1].''n';?>"+
            "<?php  echo $toEcho[20][0].','.$toEcho[20][1].''n';?>"+
            "<?php  echo $toEcho[21][0].','.$toEcho[21][1].''n';?>"+
            "<?php  echo $toEcho[22][0].','.$toEcho[22][1].''n';?>"+
            "<?php  echo $toEcho[23][0].','.$toEcho[23][1].''n';?>"+
            "<?php  echo $toEcho[24][0].','.$toEcho[24][1].''n';?>"+
            "<?php  echo $toEcho[25][0].','.$toEcho[25][1].''n';?>"
        );
    </script>

,因为我必须用".... "分隔数据+我不知道如何控制我的回声,因为我的数组很长。我想到了一个javascript代码本身包含php的循环。但没有成功。一些想法?或问题,我不知道是否有人会理解我…

在我看来这是使用foreach

的完美案例

输出看起来像

"123,123'n;"+
.....
"126,143'n;"
代码:

$setCount = 0; // keeps track of sets so i dont put a linebreak before the first one
$toEcho = json_decode($toEcho);
foreach ($toEcho as $set){
  if($setCount>0) echo "+"; // every set is seperated with a plus
  echo "'""; // put double quote down
  $valueCount = 0;
  foreach($set as $value){
    if($valueCount>0) echo ',';
    echo $value;
    $valueCount++;
  }
  echo "''n;'""; // puts the weird 'n into the string and final quote
  $setCount++;
}