在javascript中反复调用php函数

时间:2013-01-27 10:49:37

标签: php javascript

function getTime()
    {

         var date = new Array(
        <?php
            $date1 = date("Y-m-d, H:i");
            echo "new Array(\"".$date1."\")";
        ?>);

        //document.write(date[0]);

        return date[0]; 

    }   
function showmychart() {

            max_time = getTime();
            min_time = getMintime(max_time);

            //document.write(max_time);
            //delete myChart;
            var c_channel = channel;
            myChart = new Drawchart(max_time, min_time,c_channel);
            myChart.showChart();

    }

    function changeSBS(){
        channel = 'sbs';
        showmychart();
    }
    function changeKBS2(){
        channel = 'kbs2';
        showmychart();
    }


    </script>
    </head>

    <body>

    <center>    
    <div id = "header">
    </div>

    <div id="middle">
                <input type = "button" id ="before" onclick="showBeforeChart();" value = "Before">
                <object id="chart"></object>
                <script class="code" id="Drawchart" type="text/javascript">showmychart();</script>
                <input type = "button" id ="after" onclick="showAfterChart();" value = "After">
    </div>
    <div id = "channel_position">
    <input type = "button" id ="before" onclick="changeSBS();" value = "aaa">
    <input type = "button" id ="before" onclick="changeKBS2();" value = "bbb">

在此代码中,当我单击aaa按钮或bbb按钮时,我想使用函数getTime()更新函数shomychart()中的max_time。现在,当我单击按钮aaa,并且bbb它没有更新时,我认为它不会调用getTime()函数或者在getTime()函数中不起作用...我怎样才能解决这个问题? ??

1 个答案:

答案 0 :(得分:1)

PHP是一种服务器端语言。这意味着您的服务器上的PHP代码将被执行,并将生成的纯HTML发送到客户端的浏览器。当浏览器收到您的页面时,它会显示如下内容:

function getTime() {
    var date = new Array(
        new Array("2013-01-01 13:37")
    );

    //document.write(date[0]);

    return date[0]; 
}

请注意,日期烘焙到JavaScript代码中。

更好的解决方案是使用客户端的时间而不是(尝试使用)服务器的时间。您可以使用JavaScript(这是客户端语言)来使用Date对象执行此操作:

function getTime() {
    // Get current date
    var date = new Date();
    // Build a date string
    var dateString = date.getFullYear()
        + "-" + (date.getMonth()+1)
        + "-" + date.getDate()
        + " " + date.getHours()
        + ":" + date.getMinutes();
    // Return the constructed date string
    // wrapped inside an array (since apparently you need it in that format)
    // (Note that this is a short-hand notation for "new Array(dateString)")
    return [dateString];
}

根据您使用的图表库,您可以简单地将Date对象作为max_time传递,这样您就不需要先构建日期字符串。然后,只需删除您自己的getTime(),只需使用new Date()