JavaScript php全局变量增量

时间:2016-08-13 11:30:05

标签: javascript php

我有一个JavaScript函数,当我调用该函数时,它将返回一个在PHP全局变量中设置的值,

js调用函数是:dData()

Js功能:

var dData = function() {
alert(<?php returnincreament($_SESSION['UnarJ']); ?>);
};

php函数是

function returnincreament($a){
             $_SESSION['UnarJ']=$a+1;
        }

我希望增量警报值应为1,2,3,4,5,6等

JSCODE

var datas = {
  labels: ["12 AM","1 AM", "2 AM", "3 AM", "4 AM", "5 AM", "6 AM","7 AM", "8 AM", "9 AM", "10 AM", "11 AM"],
  datasets: [{
    fillColor: "rgba(78,156,181,.5)",
    strokeColor: "rgba(2,119,158,1)",
    data: [
    <?php
    $j=0;
    for($j=0;$j<12;$j++)
    {
        echo round($udData[$j]);
        if($j<12){
                echo ",";
        }
        $_SESSION['udbarJ']=$j;
    }

    ?>]
  }]
};
var returndata=0;
var nextcount=0;
var dData = function() {
     $.post( "includes/hourlyud.php", function( data ) {
         //var p=data;
         returndata=data;
     });
     return returndata;
};
var index = 11;
var currentampm="AM";
var ctxs = document.getElementById("cd").getContext("2d");
var barChartLine = new Chart(ctxs).Line(datas, {
  responsive: true,
  barValueSpacing: 5,
  bezierCurve: false
});
var ampm = function(amorpm,cstat) {
    if(amorpm===12 && cstat==="AM"){
        return "PM";
    }
    if(amorpm===12 && cstat==="PM"){
        return "AM";
    }
    if(amorpm>=1 && cstat==="AM"){
        return "AM";
    }
    else return "PM";
};
setInterval(function() {
  barChartLine.removeData();
  barChartLine.addData([dData()], index + ampm(index,currentampm));
  index++;
  if(index>12){
      if ((ampm(index,currentampm))==="AM"){
          currentampm="PM";
      }
      else
          currentampm="AM";
      index=1;
  }
}, 5500);

2 个答案:

答案 0 :(得分:0)

由于PHP是服务器端而javascript是客户端,因此它不会像这样工作。您必须使用AJAX才能使其正常工作。

就像调用php脚本的ajax请求一样 - &gt;添加+1 - &gt;将值返回警报。

答案 1 :(得分:0)

PHP是服务器端,它在页面加载之前执行,所以:

<?php returnincreament($_SESSION['UnarJ']); ?>

永远是它的价值。查看来源,您应该看到:

var dData = function() {
alert(1);
};

现在要使其工作,您需要AJAX,它将向您的服务器上的PHP脚本发送请求并获取返回的结果。使用jquery可以通过以下方式完成:

var dData = function() {
     $.post( "file.php", function( data ) {
         alert( data );
     });
}

然后在file.php中,您只需要:

<?php
session_start();
$_SESSION['UnarJ']= ++$_SESSION['UnarJ'];
echo $_SESSION['UnarJ'];

假设$_SESSION['UnarJ']已经设置,如果没有添加(session_start();之后):

if(empty($_SESSION['UnarJ'])) {
    $_SESSION['UnarJ'] = 0;
}