JavaScript php全局变量递增


JavaScript php global variable increament

我有一个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);

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;
}

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

像调用ajax请求到php脚本->添加+1 ->返回值到您的警报