用 php 循环 php-语句包裹在 javascript
Looping with php over a php-Statement wrapped in javascript
我正在使用 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++;
}
如果有什么不清楚的地方,请告诉我。
我正在使用 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++;
}
如果有什么不清楚的地方,请告诉我。