0

私は現在、yy-mm-dd (例: 2013-06-01) を必要とする日次データ、yy-mm を必要とする月次データ (例: 2013-06)、および必要な年次データのみを表示するプロジェクトを行っています。年 (例: 2013)。私の問題は次のとおりです。

  1. 年 (ui-datepicker-year) を選択すると、選択した年に基づいて年全体のデータが表示されます (たとえば、選択された年は 2013 年です。したがって、2013-01 から 2013-12 までのデータが表示されます)。

これはjqueryです:

<script>
$(function() {
    $("#datepicker").datepicker({
            changeMonth: true,
            changeYear: true,
            dateFormat: 'dd MM yy',

            //SELECTED DATE: 2013-06-01
            onSelect: function(dateText, inst) { 
                $.ajax({
                    type: "POST",
                    url: "content.php",
                    data: { "datepick" : dateText, "type" : "all"},
                    success: function(html) {
                        $("#content").empty().append(html);
                    }
                });
            },

            onChangeMonthYear: function(year, month, inst){
                $.ajax({
                    type: "POST",
                    url: "content.php",
                    data: { "datepick" : month, "type" : "month", "year" : year},
                    success: function(html) {
                        $("#content").empty().append(html);
                    }
                });
            }
    });
});
</script>
<div id="datepicker"> </div>

そして、これはphpファイル(content.php)です:

if(isset($_POST['datepick']) && !empty($_POST['datepick'])) {
    if($_POST['type']=="month") {
        $where = "MONTH(dbDate) = '{$_POST['datepick']}' AND YEAR(dbDate) = '{$_POST['year']}'";
    }
    else {
        $date = date_create($_POST['datepick']);
        $calendarDate = date_format($date, 'Y-m-d');
        $where = "DATE(dbDate) = '{$calendarDate}'";
    }
}
else {
    $calendarDate = date('Y-m-d');
    $where = "DATE(dbDate) = '{$calendarDate}'";
}

$sql = "SELECT name FROM db WHERE {$where};
while($row = mysql_fetch_array($query))
{
    $name = $row['name'];
}

しかし、年間データに何を使用すればよいかわかりません。スクリプトに if-else 条件を使用しようとしましたが、機能しません:

onChangeMonthYear: function(year, month, inst){
    if($('.ui-datepicker-month :selected').click(function(){
        var month = $('.ui-datepicker-month :selected').val();
        var year = $('.ui-datepicker-year :selected').val();

        $.ajax({
        type: "POST",
        url: "content.php",
        data: { "datepick" : month, "type" : "month", "year" : year},
        success: function(html) {
            $("#content").empty().append(html);
        }
    });
}));

    else if($('.ui-datepicker-year :selected').click(function(){
        var year = $('.ui-datepicker-year :selected').val();
        $.ajax({
            type: "POST",
            url: "content.php",
            data: { "datepick" : year, "type" : "year"},
            success: function(html) {
                $("#content").empty().append(html);
            }
        });
    }));
}

また、content.php の *if($_POST['type']=="month")* の後にこの else if 条件を追加してみました:

else if($_POST['type']=="year") {
    $where = "YEAR(dbDate) = '{$_POST['year']}'";
}
4

0 に答える 0