How to use AJAX and pass variables on the same page

0

I was doing a php graphics process, but it turns out that I added a select to work with options, but it does not take the value (in the POST that I put) ... and I would like to know if it is possible to send the values of a select in a same page (if it is with normal form), since the code I present it there

  <!DOCTYPE html>
  <html lang="es">
  <head>
  <title>Estadístias PHP - JS</title>
  <meta charset="utf-8">
  <link rel="stylesheet" href="estilo.css">
   <script src="js/jquery.min.js"></script>
  <script src="js/highcharts/js/highcharts.js"></script>
  <script src="js/highcharts/js/themes/grid.js"></script>
   <script src="js/highcharts/js/modules/exporting.js"></script>
   </head>
   <body>
   <div class="contendor">
    <script >

    </script>
    <div id="consulta">
        <form method="POST" action="estadisticas.php">
        <h1>REPORTES DE INCIDENCIAS</h1><hr>
        <select onClick="mostrarResultados();" id="zona">
          <option value="1">ENERO</option>
          <option value="2" selected>FEBRERO</option>
          <option value="3">MARZO</option>
          <option value="4">ABRIL</option>
          <option value="5">MAYO</option>
          <option value="6">JUNIO</option>
          <option value="7">JULIO</option>
          <option value="8">AGOSTO</option>
        </select>
        </form>

        <?php
        include("conexion.php");
        $x=$_POST['zona'];
        $result =$con->query("SELECT DAY(fecha),COUNT(DAY(fecha)) as total FROM Estudiante WHERE MONTH(fecha)='$x' GROUP BY DAY(fecha)");
        $c=0;
        $a=0;
        $total=0;
        while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
        {
            $categoria[$c] = $row["DAY(fecha)"];
            $datos[$c] = $row["total"];  
            $total = $total + $row["total"];
            $c++;
        }
        for ($j=0;$j<=$c-1;$j++)
        {
            $a++;
            /*echo "<tr><td>".$categoria[$j];
            echo "</td><td>".$datos[$j];
            echo "</td><td>".number_format((($datos[$j]/$total)*100), 1, ',', '')."%";*/
            $por[$j]= $datos[$j];
            /*if ($j==0) 
            {
                echo "</td><td rowspan=".$c.">".$total."</td></tr>";
            }*/
        }
        mysqli_close($con);   
        ?>

    </div>
    <script type="text/javascript">
    $(function () {
        var colors = Highcharts.getOptions().colors,
        categories = [<?php for($y=0;$y<=$c-1;$y++){ echo "'".$categoria[$y]."',";}?>   ],
        name = 'Semestres',
        data = [
        <?php for($x=0;$x<=$c-1;$x++){?>    
        {
            y: <?php echo $por[$x] ?>,
            color: colors[<?php echo $x?>],                   
        }, 
        <?php }?>      
        ];
        function setChart(name, categories, data, color) {
            chart.xAxis[0].setCategories(categories, false);
            chart.series[0].remove(false);
            chart.addSeries({
                name: name,
                data: data,
                color: color || 'white'
            }, false);
            chart.redraw();
        }
        var chart = $('#grafica').highcharts({
            chart: {
                type: 'column'
            },
            title: {
                text: 'incidencias por mes'
            },
            xAxis: {
                categories: categories
            },
            credits: {
                enabled: false
            },
            plotOptions: {
                column: {
                    cursor: 'pointer',
                    point: {
                        events: {
                            click: function() {
                                var drilldown = this.drilldown;
                                if (drilldown) { 
                                    setChart(drilldown.name, drilldown.categories, drilldown.data, drilldown.color);
                                } else { 
                                    setChart(name, categories, data);
                                }
                            }
                        }
                    },
                    dataLabels: {
                        enabled: true,
                        color: colors[0],
                        style: {
                            fontWeight: 'bold'
                        },
                        formatter: function() {
                            return this.y +' unidades';
                        },
                    }
                }
            },
            series: [{
                name: name,
                data: data,
                color: 'white'
            }],
            exporting: {
                enabled: true
            }
        })
        .highcharts(); 
    });
    </script>
    <div id="grafica"></div>
</div>

    
asked by kev 29.05.2018 в 00:14
source

0 answers