Graphique + checkbox

19 views
Skip to first unread message

Sébastien

unread,
Jul 10, 2018, 11:15:00 AM7/10/18
to Google Visualization API
Bonjour,

j'ai un problème avec une checkbox, j'ai écrit un code qui va chercher des données sur phpMyAdmin et les transposent en graphique.


J'ai rajouté une option qui permet de supprimer la courbe bleu, mais le soucis c'est que la courbe noir devient bleu et la légende devient celle de la courbe bleu. je ne sais pas comment faire pour que la courbe noir reste noir avec sa légende.


 
<?php  
$Nom_fichier = basename(__FILE__); //echo "Nom du fichier $Nom_fichier";
  //connexxion bdd
    include_once "global.php"; 
    $mysqli=new mysqli($G_dbhost, $G_dbuser, $G_dbpwd, $G_dbdb);
    if ($mysqli->connect_error) 
    {
      echo "Impossible de se connecter à la base de donnée<BR>";
    }
    else 
    {
      $requetsql="SELECT serial FROM client_sigfox";
      $request_bdd_client = $mysqli->query($requetsql);
      $Nb_serial = 0;
      while ($row = $request_bdd_client->fetch_array())
      {
        $serial_table[]= $row['serial'];
        $Nb_serial++;
      }
      $requetsql="SHOW COLUMNS FROM data_sigfox";
      $request_bdd_column_name_data_sigfox = $mysqli->query($requetsql);
      $Nb_column = 0;
      while ($rows = $request_bdd_column_name_data_sigfox->fetch_array())
      {
        $bdd_column_name_data_sigfox[]= $rows['Field'];
        $Nb_column++;
      }
      
      if (isset($_POST['case0'])) {$valeurcase0=0;}else{$valeurcase0=1;}
      if (isset($_POST['case1'])) {$valeurcase1=0;}else{$valeurcase1=1;}
      if (isset($_POST['case2'])) {$valeurcase2=0;}else{$valeurcase2=1;}
      if (isset($_POST['serial']) && isset($_POST['X']) && isset($_POST['Y1']) && isset($_POST['Y2']) && isset($_POST['Nb']))
      {
        $valeurserial=$_POST['serial'];         //echo "Voici le POST de serial : $valeurserial<BR>";
        $valeurX=$_POST['X'];                   //echo "Voici le POST de X : $valeurX<BR>";
        $valeurY1=$_POST['Y1'];                   //echo "Voici le POST de Y : $valeurY<BR>";   
        $valeurY2=$_POST['Y2'];
        $valeurNb=$_POST['Nb'];  
      }
      else
      {
        $valeurserial=$serial_table[0];         //echo "Voici le POST de serial : $valeurserial<BR>";
        $valeurX=$bdd_column_name_data_sigfox[3]; //echo "Voici le POST de X : $valeurX<BR>";
        $valeurY1=$bdd_column_name_data_sigfox[0]; //echo "Voici le POST de Y : $valeurY<BR>";
        $valeurY2=$bdd_column_name_data_sigfox[0];
        $valeurNb=10000;
      }
      //echo "connexion OK<BR>";
      // Requet SQL
      $requetsql="SELECT ".$valeurX.", ".$valeurY1.", ".$valeurY2." FROM data_sigfox WHERE serial='".$valeurserial."' ORDER BY id DESC LIMIT ".$valeurNb."";
      $reponse = $mysqli->query($requetsql);
      //$test_table[0] = ["$valeurX","$valeurY1","$valeurY2"];

      while ($row = $reponse->fetch_array())
      {
        if($valeurX == 'time')
          {
            
            $dateFR=date_create_from_format('U', $row[$valeurX]);
            date_timezone_set($dateFR, timezone_open('EUROPE/PARIS'));
            $var_tableau_X=date_format($dateFR, 'Y-m-d H:i');
            //$var_tableau_X=date("Y-m-d H:i", strtotime('$var_tableau_X + 1 Hour');
          }
        else
          {
            $var_tableau_X=floatval($row[$valeurX]);
          }

        if($valeurcase0==1)
          {
            $test_table[] = [$var_tableau_X,floatval($row[$valeurY1]),floatval($row[$valeurY2])];
          }
        if($valeurcase0==0)
          {
            $test_table[] = [$var_tableau_X,floatval($row[$valeurY1]),floatval($row[$valeurY1])];
          }      
        
      }
      $test=array_reverse($test_table);
      $test_table_1 = array_unshift($test, ["$valeurX","$valeurY1","$valeurY2"]);
      //echo '<pre>';
      //print_r($test);
      //echo '</pre>';
      //echo($test_table[0][0]);
      // Libération des ressources 
      
      // Requeet valeur du DNS 
     

      // Requet valeur timstamp de la dernière ligne
      $requetsql="SELECT time FROM data_sigfox WHERE serial='".$valeurserial."' ORDER BY id DESC LIMIT 1";
      $reponse = $mysqli->query($requetsql);
      while ($row = $reponse->fetch_array())
      {
        $dateFR3=date_create_from_format('U', $row['time']);
        date_timezone_set($dateFR3, timezone_open('EUROPE/PARIS'));
        $last_time[]=  date_format($dateFR3, 'Y-m-d H:i');
      }


      //echo "Nom du fichier $dns[0]";


      $reponse->free();
      // Fermeture de la connexion
      $mysqli->close();
    }
?>


<!DOCTYPE html>
<html>
    <head>
        <!--<meta http-equiv="Refresh" content="0.5; url=Graphe10.php">-->
        <meta charset="utf-8" />
        <link rel="stylesheet" css" />
        <title>Affichage bdd </title>
    </head>

    <body>
        <h1>Affichage Bdd étude V8</h1>
        <form method="post" action="<?php echo "$Nom_fichier";?>">
        <fieldset>
          <legend>Quels paramètres ?</legend> <!-- Titre du fieldset --> 
          
          <p>
            <!-- Début Tableau -->
          <table>
            <tr>
                  <td><label for="serial">Serial</label></td>
                  <td><select name="serial" id="serial">
              <!--<option value="-1">- - - Choisissez un serial - - -</option>-->
              <?php
              for($i = 0; $i < $Nb_serial; $i++)
              {
                ?>
                <option
                  <?php if($serial_table[$i] == $valeurserial){echo 'selected="selected"';} ?> value="<?php echo($serial_table[$i]);?>"><?php echo ($serial_table[$i]);?>
                </option> <?php
              } ?>            
            </select></td>      
            </tr>  
            <tr>
                  <td><label for="X">X</label></td>
                  <td><select name="X" id="X">

              <?php
              for($i = 0; $i < $Nb_column; $i++)
              {
                ?>
                <option
                
                  <?php if($bdd_column_name_data_sigfox[$i] == $valeurX){echo 'selected="selected';} ?> value="<?php echo($bdd_column_name_data_sigfox[$i]);?>"> <?php echo ($bdd_column_name_data_sigfox[$i]);?>
                </option> <?php
              } ?>    
            </select></td>
            </tr>

            <tr>
                <td><label for="Y1">Y1</label><br /></td>
                <td><select name="Y1" id="Y1">
              <?php
              for($i = 0; $i < $Nb_column; $i++)
              {
                ?>
                <option
                  <?php if($bdd_column_name_data_sigfox[$i] == $valeurY1){echo 'selected="selected"';} ?> value="<?php echo($bdd_column_name_data_sigfox[$i]);?>"><?php echo ($bdd_column_name_data_sigfox[$i]);?>
                </option> <?php
                
              } ?>
            </select></td>

                
            </tr>

            <tr>
                <td><label for="Y2">Y2</label><br /></td>
                <td><select name="Y2" id="Y2">
              <?php
              for($i = 0; $i < $Nb_column; $i++)
              {
                ?>
                <option
                  <?php if($bdd_column_name_data_sigfox[$i] == $valeurY2){echo 'selected="selected"';} ?> value="<?php echo($bdd_column_name_data_sigfox[$i]);?>"><?php echo ($bdd_column_name_data_sigfox[$i]);?>
                </option> <?php
              } ?>
            </select>
          </td>

                <td>
                  <label for="case0">Effacer valeur Y2? </label>
                  <input type="checkbox" name="case0" id="case0" 
                <?php if($valeurcase0==0){echo 'checked="checked"';} ?>


              />
          </td>

            </tr>

            <tr>
                <td><label for="Nb">Nb de données (10080 semaine/min)</label></td>
                <td><input type="number" name="Nb" id="Nb" min="1" max="20000" value="<?php echo($valeurNb);?>"></td>
            </tr>
<!--
            <tr>
                <td><label for="case1">Même Echelle ? </label></td>
                <td><input type="checkbox" name="case1" id="case1" 
                <?php if($valeurcase1==0){echo 'checked="checked"';} ?>/></td>
            </tr>

            <tr>
                <td><label for="case2">Sans ligne ? </label></td>
                <td><input type="checkbox" name="case2" id="case2" 
                <?php if($valeurcase2==0){echo 'checked="checked"';} ?>/></td>
            </tr>
-->
          </table>

          
              <input type="submit" value="Envoyer" />
          </p>
        </form>
          <p>
          <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
          <script type="text/javascript">
            google.charts.load('current', {'packages':['corechart']});
            google.charts.setOnLoadCallback(drawChart);

            function drawChart() 

            {
              var data = google.visualization.arrayToDataTable(<?php echo json_encode($test); ?>);

              var options = 
              {
                title: 'Company Performance',
                series: 
                {
                //target axis index : legende à gauche 
                // linewidth: épaisseur de la ligne
                // point size: épaisseur du point
                  0: {targetAxisIndex: 2, lineWidth: 0<?php echo ($valeurcase1);?>, pointSize: 7, pointShape: 'triangle', color: 'black'},
                  1: {targetAxisIndex: 2, lineWidth: 0<?php echo ($valeurcase0);?>, pointSize: 7, color: 'red'},
                  
                },
 
                //curveType: 'none',
                //legend: { position: 'top' }
               /* vAxes: 
                {
                  // Adds titles to each axis.
                  0: {title: '<?php echo ($test[0][0]);?>'},
                  1: {title: '<?php echo ($test[0][2]);?>'}
                }
                */
               
                /*crosshair: 
                {
                  color: '#000',
                  trigger: 'selection'
                }*/
              };

              var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));

              chart.draw(data, options);
            }
          </script>
          <div id="curve_chart" style="width: 1700px; height: 600px; padding-left: -10px"></div>
          </p>
        </fieldset>
    <footer>
    </footer>
    </body>
</html>





Reply all
Reply to author
Forward
0 new messages