【问题标题】:Re-query mysql on .change <select>在 .change <select> 上重新查询 mysql
【发布时间】:2014-11-19 22:11:25
【问题描述】:

想法:

您进入的页面中有一个(高)图表,其中显示了从 mysql 获取的当年系列 - 工作正常,没问题。

从下拉列表中选择应该更新查询以显示从下拉列表中选择的年份。
下拉列表:

<select id="set_data">
<?php 
    $sql = "SELECT DISTINCT year FROM chartdata ORDER BY year DESC";
    $r = mysqli_query($con, $sql);
    while($row = mysqli_fetch_array($r)){
        echo '<option value="'.$row['year'].'">'.$row['year'].'</option>';
    }
?>
</select>

jQuery

<script type="text/javascript">
$('#set_data').change(function() {
    $('.data_set').load('fetch_charts/highchart_ad.php?id='+this.options[this.selectedIndex].value);
});
</script>



所以基本上我正在做的是在相同的内容上加载一组新的 highchart 脚本 - 这并没有给我太多......显然,但我已经完全停止了
请帮忙



- 更新 -

基本上我在找什么:
1.进入页面=2014可见...
2.从下拉列表中选择 2013 年并使用 2013 年数据更新图表。

【问题讨论】:

  • 代码看起来很合理。什么不工作?
  • 是的,但是当我进入带有当前年份显示图表的页面时(SELECT year FROM TB WHERE year = date("Y")... echo values into highchart series script)上面的下拉列表加载了一组新的 highchart 脚本。双重麻烦...
  • 所以不要通过fetch_charts/highchart_ad.php加载highchart脚本。
  • 好的,但是如何将新选择的值从下拉列表中放入“旧”/第一个查询(“重新查询”)??
  • 1.进入页面 = 2014 可见... 2. 从下拉列表中选择 2013 并显示 2013 的图表更新。 原始问题已更新..

标签: php jquery mysql highcharts


【解决方案1】:

好的,经过一些尝试和失败 - 我自己对上述问题的结果..
(认为​​我可以很好地分享,也可以关闭这篇文章)

<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'>
    <select name="set_year" onchange="this.form.submit()">
    <?php 
        $sql = "SELECT DISTINCT year FROM chartdata ORDER BY year DESC";
        $r = mysqli_query($con, $sql);
        while($row = mysqli_fetch_array($r)){
            echo '<option value="'.$row['year'].'">'.$row['year'].'</option>';
        }
    ?>
    </select>
</form>

<?php
    $year = date('Y');
    $set_year = mysqli_real_escape_string($con, $_POST['set_year']);

    if(empty($set_year)){
        $A = "SELECT * FROM chartdata WHERE year = $year";
    }
    else{
        $A = "SELECT * FROM chartdata WHERE year = $set_year";
    }

    $da = mysqli_query($con, $A);
    while($result = mysqli_fetch_array($da)){
        $dataset[]= $result['data'];
        //getting the data and putting them into highchart series -> data.
    }
?>

    <script>
        //highchart script
        //...

        series: [{
            data: [<?php echo join($dataset, ',')?>]
        }]  
    </script>

以上工作正常。
欢迎任何其他解决方案/ cmets =)

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2011-11-05
    • 2014-10-13
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2012-01-25
    • 2021-07-06
    相关资源
    最近更新 更多