dtch60248 2016-09-30 08:23
浏览 30
已采纳

循环使用php包装在javascript中的php-Statement

I am using dygraphs to plot a graph. I am using a database to store all the values i need. to use dygraphs i have to use javascript. but the data im getting from the database needs to fill the dygraphs constructor dynamically. i could do it like this, but that isnt dynamic and not what i need.

<script type="text/javascript">
        g = new Dygraph(
            document.getElementById('graphdiv'),
            "Travel(mm),Force(N)
"+
            "0,0
"+
            "<?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].'
';
                    ?>"+
            "<?php  echo $toEcho[1][0].','.$toEcho[1][1].'
';?>"+
            "<?php  echo $toEcho[2][0].','.$toEcho[2][1].'
';?>"+
            "<?php  echo $toEcho[3][0].','.$toEcho[3][1].'
';?>"+
            "<?php  echo $toEcho[4][0].','.$toEcho[4][1].'
';?>"+
            "<?php  echo $toEcho[5][0].','.$toEcho[5][1].'
';?>"+
            "<?php  echo $toEcho[6][0].','.$toEcho[6][1].'
';?>"+
            "<?php  echo $toEcho[7][0].','.$toEcho[7][1].'
';?>"+
            "<?php  echo $toEcho[8][0].','.$toEcho[8][1].'
';?>"+
            "<?php  echo $toEcho[9][0].','.$toEcho[9][1].'
';?>"+
            "<?php  echo $toEcho[10][0].','.$toEcho[10][1].'
';?>"+
            "<?php  echo $toEcho[11][0].','.$toEcho[11][1].'
';?>"+
            "<?php  echo $toEcho[12][0].','.$toEcho[12][1].'
';?>"+
            "<?php  echo $toEcho[13][0].','.$toEcho[13][1].'
';?>"+
            "<?php  echo $toEcho[14][0].','.$toEcho[14][1].'
';?>"+
            "<?php  echo $toEcho[15][0].','.$toEcho[15][1].'
';?>"+
            "<?php  echo $toEcho[16][0].','.$toEcho[16][1].'
';?>"+
            "<?php  echo $toEcho[17][0].','.$toEcho[17][1].'
';?>"+
            "<?php  echo $toEcho[18][0].','.$toEcho[18][1].'
';?>"+
            "<?php  echo $toEcho[19][0].','.$toEcho[19][1].'
';?>"+
            "<?php  echo $toEcho[20][0].','.$toEcho[20][1].'
';?>"+
            "<?php  echo $toEcho[21][0].','.$toEcho[21][1].'
';?>"+
            "<?php  echo $toEcho[22][0].','.$toEcho[22][1].'
';?>"+
            "<?php  echo $toEcho[23][0].','.$toEcho[23][1].'
';?>"+
            "<?php  echo $toEcho[24][0].','.$toEcho[24][1].'
';?>"+
            "<?php  echo $toEcho[25][0].','.$toEcho[25][1].'
';?>"
        );

    </script>

because i have to seperate the data with "...."+ i dont know how to control that i echo as much as my array is long. i thought of a loop over the javascript code which itself contained php. it didnt work. some ideas? or questions, i dont know if anyone will understand me...

  • 写回答

1条回答 默认 最新

  • dtgsl60240 2016-09-30 08:48
    关注

    This looks to me like a perfect case for using foreach

    Output will look like

    "123,123
    ;"+
    .....
    "126,143
    ;"
    

    Code:

    $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 "\
    ;\""; // puts the weird 
     into the string and final quote
      $setCount++;
    }
    

    Let me know if something is unclear.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝