根据选择选项值更改动态加载html表

时间:2018-07-18 06:58:41

标签: php mysql ajax

我正在下拉菜单,其中包含从MySQL数据库获取的值。在更改下拉值时,我需要获取有关选择值的html表。如何做到这一点。

enter image description here

dashboard.php

 <select name="value" id="select01" class="w1-20">

 <?php $host = 'localhost';
 $user = 'root';
 $pass = '';
 mysql_connect($host, $user, $pass);
 mysql_select_db('test2');

 $id = $_GET['id'];

 $find=mysql_query("SELECT id,asset_type from equipment");
 while($row=mysql_fetch_array($find))
  {
   echo "
   <option id='".$row['id']."'  value='".$row['id']."'>".$row['asset_type']."</option>";
   print_r($row['id']);
   echo $row['id'];

  }

 ?>
 </select>


    <?php
                $host    = "localhost";
                $user    = "root";
                $pass    = "";
                $db_name = "test2";
                $lastId="";

                //create connection
                $con = mysqli_connect($host, $user, $pass, $db_name);

                //test if connection failed
                $result = mysqli_query($con,"SELECT SUM(cost) FROM track_data WHERE start_time > 
                  DATE_SUB(NOW(), INTERVAL 2 HOUR) ");

                $result1 =  mysqli_query($con,"SELECT SUM(cost) FROM track_data WHERE start_time > 
                  DATE_SUB(NOW(), INTERVAL 1 WEEK)");

                $result2 =  mysqli_query($con,"SELECT SUM(cost) FROM track_data WHERE start_time > 
                  DATE_SUB(NOW(), INTERVAL 1 MONTH)");

                // echo $result;
                ?>

<div class="col-md-12 ">
    <div class="col-md-6 col-md-offset-3">

        <div class="content table-responsive table-full-width" id="show_table">
          <!-- <h5 class="text-center"> Overall Consumption </h5> -->
          <h4 class="title text-center"> Overall Consumption</h4>
            <table class="table table-hover table-striped">    
        <tr class="t_head"> 
          <th>  Days </th>
          <th> Usage  </th>
          <th> Total Cost  </th>
          <!-- <th> Activity </th> -->
           <!-- <th> Total Cost </th> -->
        </tr>       
<?php
while($row = mysqli_fetch_array($result))

{

echo "<tr>"; 
  // echo "<td>" .$row['asset_type']. "</td>";
 echo "<td> Today </td>";
  echo "<td>1 Hour</td>";
echo "<td>" .$row[0]. "</td>";
 // echo "<td>" .$row['profit']. "</td>";

echo "</tr>";

}

 while($row1 = mysqli_fetch_array($result1))

{

echo "<tr>"; 
 echo "<td> Week </td>";
  echo "<td>1 Week</td>";
echo "<td>" . $row1[0] . "</td>";
 // echo "<td>" . $row1['profit'] . "</td>";

echo "</tr>";


}

while($row2 = mysqli_fetch_array($result2))


{


echo "<tr>"; 
 echo "<td> Month </td>";
  echo "<td>1 Month</td>";
echo "<td>" . $row2[0] . "</td>";
echo "</tr>";  
}
?>  
      </table>
    </div>

</div>
    </div>

    <!-- total cost time data -->

            </div>
        </div>
    </div>
</div>
    $(function () { 
    // $("#show_table").show();

    $("#select01").on("change", function () {        
        $("#show_table").hide();
        var show = $("div[id='" + $(this).val() + "']").show();
        alert(show);
    });
});

我给了select选项,表和jquery onchange代码。我需要在表格中获取有关选择的选项值的详细信息。如何实现。

3 个答案:

答案 0 :(得分:1)

我对您的第一个提示是,分别解决这些问题,因此:1.使用Twig引擎,或2.在php文件中的html代码上方设置所有PHP登录名。

选择纯HTML并不是最好的选择。

另一个技巧是使用PDO准备好的语句和/或DBAL层(link)。

您想要实现的目标可以使用javascript完成。

如果需要,可以为每个类别或可选选项生成一个,然后为div分配一个类或属性,以便在javascript选择中使用它们隐藏()或show()它们。

答案 1 :(得分:1)

您可以进行更改时选择功能,并使用参数中的值重定向到同一页面。使用php,您可以根据设置的参数检查GET参数并输出适当的内容。

$('select').change(function(){
  var value = $(this).val();
  window.location.replace("http://stackoverflow.com?site=" + value);
});

// now, check parameter with PHP
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option>1</option>
  <option>2</option>
</select>

答案 2 :(得分:1)

我会这样:

在页面加载时,仅加载第一个选项的表格(在您的情况下是氧气)。

然后在您的jquery中:

$("#select01").on("change", function () { 
     var selected = $(this).val(); // get the selected value
     $("#show_table").load("ajax/table.php?selected="+selected); // load the table in the div
});

在您的ajax / tables.php文件中,您将执行以下操作:

<?php 
$selected = $_GET["selected"];
//query the data from your database
?>

<h4 class="title text-center"> Overall Consumption</h4>
<table class="table table-hover table-striped">    
   <tr class="t_head"> 
      <th>Days </th>
      <th> Usage  </th>
      <th> Total Cost  </th>
      <!-- <th> Activity </th> -->
      <!-- <th> Total Cost </th> -->
   </tr>   

如果您的表头始终是相同的,我将不将show-table放在它的表头之前,而是放在它的表头之后,例如:

<div class="content table-responsive table-full-width">
          <!-- <h5 class="text-center"> Overall Consumption </h5> -->
          <h4 class="title text-center"> Overall Consumption</h4>
            <table class="table table-hover table-striped">    
        <tr class="t_head"> 
          <th>  Days </th>
          <th> Usage  </th>
          <th> Total Cost  </th>
          <!-- <th> Activity </th> -->
           <!-- <th> Total Cost </th> -->
        </tr>   
        <div id="show-table"></div>
        </table>