2016-08-30 22 views
0

私はこの問題を解決するために数週間努力してきましたが、最後の手段として私はここで助けを求めています。 オプションタグを使用して4つのオプションを表示しています。オプションを選択すると.phpファイルが読み込まれます。私が持っているコードはあまりエレガントではありませんが、機能します。オプション選択のデフォルト設定

<select name="history" class="button"> 
<option value="1" selected>Today</option> 
<option value="2">Yesterday</option> 
<option value="3">This Month</option> 
<option value="4">This Year</option> 
</select> 

<div id="txtHint"><b></b></div> 
<script> 
    $('[name="history"]').on('change', function() { 
    var ajaxMethod = "today.php"; 
    switch($(this).val()) 
    { 
    case "1": 
    ajaxMethod = "today.php"; 
    break; 
    case "2": 
    ajaxMethod = "yesterday.php"; 
    break;     
    case "3": 
    ajaxMethod = "monthly.php"; 
    break;     
    case "4": 
    ajaxMethod = "yearly.php"; 
    break;  
    } 
    $("#txtHint b").load(ajaxMethod); 
}); 
</script> 

すべての.phpファイルは同じテーブルを持ちますが、異なるmysqlクエリを行います。 ページを更新するとブロックがクリアされ、オプションを再度選択する必要があります。ページが読み込まれたときにデフォルトとしてオプションを読み込むことは可能ですか?それ以外の場合は、選択を行う前に空のブロックがあります。 私はブロック内にテーブルを持っていて、各ファイルにmysqlだけを照会させようとしましたが、それは動作しません。 任意の提案は...にDBから

1.FetchデータをTRY私はページを更新する際に選択したオプションを復元するにはtoday.php

<?php 
    $result = mysqli_query($con, " 
     SELECT max(Tmax), min(Tmin), max(R) 
     FROM alldata 
     WHERE DATE(DateTime) = CURDATE() 
     " 
    ); 
    while ($row = mysqli_fetch_array($result)) { 
     $maxTemp = $row['max(Tmax)']; 
     $minTemp = $row['min(Tmin)']; 
     $totalRain = $row['max(R)']; 
    } 
?> 
    <table id="historical"> 
    <tr> 
     <td> 
     </td> 
     <td> 
      <?php echo 'Maximum'?> 
     </td> 
     <td> 
      <?php echo 'Minimum'?> 
     </td>  
    </tr> 
    <tr> 
     <td> 
      <img src="images/temp.png"> 
     </td> 
     <td> 
      <?php echo $maxTemp." °C"?> 
     </td> 
     <td> 
      <?php echo $minTemp." °C"?> 
     </td>  
    </tr> 
    <tr> 
     <td> 
      <img src="images/rain.png"> 
     </td> 
     <td> 
      <?php echo $totalRain." °C"?> 
     </td>  
    </tr> 
</table> 

答えて

0

多くのテストの後で、これは目的に合ったコードです。 他のユーザーに役立つかもしれません。

<select id="recordsSelector" class="button"> 
           <option value="today" selected> 
            <?php echo "Today"?> 
           </option> 
           <option value="yesterday"> 
            <?php echo "Yesterday"?> 
           </option> 
           <option value="thisMonth"> 
            <?php echo "This Month"?> 
           </option> 
           <option value="thisYear"> 
            <?php echo "This Year"?> 
           </option> 
          </select> 


       <script type="text/javascript" src="js/jquery.js"></script>   
       <script> 
        stationData('<?php echo $defaultStats?>'); 
        function stationData(period){ 
         $(".records").html(""); 
         if(period=="today"){ 
          $("#almanacheading").html("Today"); 
         } 
         if(period=="yesterday"){ 
          $("#almanacheading").html("Yesterday"); 
         } 
         if(period=="thisMonth"){ 
          $("#almanacheading").html("This Month"); 
         } 
         if(period=="thisYear"){ 
          $("#almanacheading").html("This Year"); 
         } 
         $.ajax({ 
          url : "almanac.php?period="+period, 
          dataType : 'json', 
          success : function (json) { 
           $("#historyTMax").html(json['maxT']); 
           $("#historyTMin").html(json['minT']); 

           $("#historyHMax").html(json['maxH']); 
           $("#historyHMin").html(json['minH']); 

           $("#historyDMax").html(json['maxD']); 
           $("#historyDMin").html(json['minD']); 

           $("#historyPMax").html(json['maxP']); 
           $("#historyPMin").html(json['minP']); 
          }, 
         }); 
        } 
        $("#recordsSelector").change(function(){ 
         period = $(this).val(); 
         stationData(period); 
        }); 
        $("#recordsSelector").val('<?php echo $defaultStats?>');  
       </script> 
0

が含まれている完全を期すため

をいただければ幸いですページをロード中にデフォルトオプションを選択します。 (DBにオプション値を格納する場合)。

  1. またはセッションまたはCookieを使用して、選択したデータを一時的に保存します。セッションまたはクッキーのデータにデフォルトのオプションw.rを選択します。
+0

@ safinありがとうございますが、あまり役に立ちません。ページが最初にロードされると、ブロックは空白になります。復元するものは何もありません。私が必要とするのは、空のテーブルではなく、ブロックにテーブルを表示することです。最初のオプションを選択すると、「変更」のために何も起こらず、変更も行われません。 – Colin

+0

はクッキーを使用できません..? –

+0

選択がなされていない場合、クッキーには何も保存されません – Colin

関連する問題