Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将php变量传入ajax success函数并分配给JavaScript变量_Javascript_Php_Ajax - Fatal编程技术网

如何将php变量传入ajax success函数并分配给JavaScript变量

如何将php变量传入ajax success函数并分配给JavaScript变量,javascript,php,ajax,Javascript,Php,Ajax,我想访问前端ajax成功回调函数中的后端php变量。怎么做? 我的代码php代码 if($_POST["action"] == 'check_ot_count') { $totaltime = 0; $ot_hours = $_POST["test"]; $month = $_POST["month"]; foreach ($ot_hours as $time_val) { $t

我想访问前端ajax成功回调函数中的后端php变量。怎么做? 我的代码php代码

    if($_POST["action"] == 'check_ot_count')
      { 

        $totaltime = 0;

        $ot_hours = $_POST["test"];
        $month = $_POST["month"];

         foreach ($ot_hours as $time_val) {
            $totaltime +=explode_time($time_val); // this fucntion will convert all hh:mm to seconds
         }
          $tablecount = second_to_hhmm($totaltime);
          $approval = GetApprovedOt($connect,$_SESSION["dept_Id"],$month);

          if($approval == ':00'){

            echo 'Before the time allocate you need get approval department group OT request';
          }else{
          if($approval < $tablecount){

          list ($hour1, $min1) = explode(':', $tablecount);
          list ($hour2, $min2) = explode(':', $approval);

         $sumHour = sprintf('%02d', $hour1 - $hour2);
         $sumMin = sprintf('%02d', $min1 - $min2);

         $temp = $sumHour.':'.$sumMin;
         //$sumSec = sprintf('%02d', $sec1 - $sec2);
            echo 'You Need to get Sub OT Approval '.$temp.' Hours to Time allocate in the department';
          }
          elseif($approval > $tablecount){
          list ($hour1, $min1) = explode(':', $approval);
          list ($hour2, $min2) = explode(':', $tablecount);

         $sumHour = sprintf('%02d', $hour1 - $hour2);
         $sumMin = sprintf('%02d', $min1 - $min2);
         $temp01 = $sumHour.':'.$sumMin;

            echo 'You can allocate time period succefully.Anyway '.$temp01.' Hours are still avilable to allocate' ;
          }elseif($approval == $tablecount){

            echo 'You are fully allocate the approval OT hours count';
          }
        }
      }
}
$.ajax({
      url: 'ot_divide_action.php',
      type: 'POST',
      data: { action:'check_ot_count', test:test,month:month},
      success:function(data)
      {
      /**/
   if(data == 'Before the time allocate you need get approval department group OT request')
   {
    setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "Before the time allocate you need get approval department group OT request",
     type: "warning",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }/*no month procces if end*/
  else if (data == 'You are fully allocate the approval OT hours count'){
  setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "You are fully allocate the approval OT hours count",
     type: "success",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }
 else if (data == "You Need to get Sub OT Approval" + <?php echo $temp; ?> + "Hours to Time allocate in the department"){
  var temp = <?php echo $temp; ?>;
  setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "You Need to get Sub OT Approval "+ temp + "Hours to Time allocate in the department",
     type: "info",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }
  else if (data == 'You can allocate time period succefully.Anyway '.$temp01.' Hours are still avilable to allocate'){
    var temp01 = 0;
  setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "You can allocate time period succefully.Anyway "+ temp01 +" Hours are still avilable to allocate",
     type: "info",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }
   }
  });
if($\u POST[“action”]=“check\u ot\u count”)
{ 
$totaltime=0;
$ot_hours=$_POST[“测试”];
$month=$_POST[“month”];
每小时($ot_小时作为$time_val){
$totaltime+=分解时间($time\u val);//此功能将所有hh:mm转换为秒
}
$tablecount=秒到秒的时间($totaltime);
$approval=GetApprovedOt($connect,$\u SESSION[“dept\u Id”],$month);
如果($approval==':00'){
echo“在时间分配之前,您需要获得批准部门组加班申请”;
}否则{
如果($approval<$tablecount){
列表($hour1,$min1)=分解(“:”,$tablecount);
列表($hour2,$min2)=分解(“:”,$approval);
$sumHour=sprintf('%02d',$hour1-$hour2);
$sumMin=sprintf('%02d',$min1-$min2);
$temp=$sumHour.:'.$sumMin;
//$sumSec=sprintf('%02d',$sec1-$sec2);
echo“您需要获得子OT批准”。$temp.“在部门分配的时间小时数”;
}
elseif($approval>$tablecount){
列表($hour1,$min1)=分解(“:”,$approval);
列表($hour2,$min2)=分解(“:”,$tablecount);
$sumHour=sprintf('%02d',$hour1-$hour2);
$sumMin=sprintf('%02d',$min1-$min2);
$temp01=$sumHour.:'.$sumMin;
echo“您可以成功地分配时间段。无论如何,”$temp01。“仍然可以分配小时数”;
}elseif($approval==$tablecount){
echo“您完全分配批准加班时间计数”;
}
}
}
}
java脚本代码

    if($_POST["action"] == 'check_ot_count')
      { 

        $totaltime = 0;

        $ot_hours = $_POST["test"];
        $month = $_POST["month"];

         foreach ($ot_hours as $time_val) {
            $totaltime +=explode_time($time_val); // this fucntion will convert all hh:mm to seconds
         }
          $tablecount = second_to_hhmm($totaltime);
          $approval = GetApprovedOt($connect,$_SESSION["dept_Id"],$month);

          if($approval == ':00'){

            echo 'Before the time allocate you need get approval department group OT request';
          }else{
          if($approval < $tablecount){

          list ($hour1, $min1) = explode(':', $tablecount);
          list ($hour2, $min2) = explode(':', $approval);

         $sumHour = sprintf('%02d', $hour1 - $hour2);
         $sumMin = sprintf('%02d', $min1 - $min2);

         $temp = $sumHour.':'.$sumMin;
         //$sumSec = sprintf('%02d', $sec1 - $sec2);
            echo 'You Need to get Sub OT Approval '.$temp.' Hours to Time allocate in the department';
          }
          elseif($approval > $tablecount){
          list ($hour1, $min1) = explode(':', $approval);
          list ($hour2, $min2) = explode(':', $tablecount);

         $sumHour = sprintf('%02d', $hour1 - $hour2);
         $sumMin = sprintf('%02d', $min1 - $min2);
         $temp01 = $sumHour.':'.$sumMin;

            echo 'You can allocate time period succefully.Anyway '.$temp01.' Hours are still avilable to allocate' ;
          }elseif($approval == $tablecount){

            echo 'You are fully allocate the approval OT hours count';
          }
        }
      }
}
$.ajax({
      url: 'ot_divide_action.php',
      type: 'POST',
      data: { action:'check_ot_count', test:test,month:month},
      success:function(data)
      {
      /**/
   if(data == 'Before the time allocate you need get approval department group OT request')
   {
    setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "Before the time allocate you need get approval department group OT request",
     type: "warning",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }/*no month procces if end*/
  else if (data == 'You are fully allocate the approval OT hours count'){
  setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "You are fully allocate the approval OT hours count",
     type: "success",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }
 else if (data == "You Need to get Sub OT Approval" + <?php echo $temp; ?> + "Hours to Time allocate in the department"){
  var temp = <?php echo $temp; ?>;
  setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "You Need to get Sub OT Approval "+ temp + "Hours to Time allocate in the department",
     type: "info",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }
  else if (data == 'You can allocate time period succefully.Anyway '.$temp01.' Hours are still avilable to allocate'){
    var temp01 = 0;
  setTimeout(function () { 
   swal({
     title: "OverTime Status!",
     text: "You can allocate time period succefully.Anyway "+ temp01 +" Hours are still avilable to allocate",
     type: "info",
     confirmButtonText: "OK"
    },
 function(isConfirm){
    if (isConfirm) {
       //window.location.href = "index.php";
      }
   }); }, 1);
    }
   }
  });
$.ajax({
url:'ot_divide_action.php',
键入:“POST”,
数据:{操作:'检查计数',测试:测试,月份:},
成功:功能(数据)
{
/**/
如果(数据=='在时间分配之前,您需要获得批准部门组加班申请')
{
setTimeout(函数(){
游泳({
标题:“加班状态!”,
文本:“在时间分配之前,您需要获得批准部门组加班申请”,
键入:“警告”,
confirmButtonText:“好的”
},
功能(isConfirm){
如果(我确认){
//window.location.href=“index.php”;
}
}); }, 1);
}/*如果结束,则没有月进程*/
否则,如果(数据=='您完全分配批准加班时间计数'){
setTimeout(函数(){
游泳({
标题:“加班状态!”,
文本:“您已完全分配批准加班时间计数”,
键入:“成功”,
confirmButtonText:“好的”
},
功能(isConfirm){
如果(我确认){
//window.location.href=“index.php”;
}
}); }, 1);
}
else if(数据==“您需要获得子OT批准”++“部门时间分配的小时数”){
var-temp=;
setTimeout(函数(){
游泳({
标题:“加班状态!”,
文本:“您需要获得子OT批准”+临时工+“部门时间分配小时数”,
输入:“信息”,
confirmButtonText:“好的”
},
功能(isConfirm){
如果(我确认){
//window.location.href=“index.php”;
}
}); }, 1);
}
else if(data='您可以成功分配时间段。无论如何,'$temp01。'小时仍然可以分配'){
var-temp01=0;
setTimeout(函数(){
游泳({
标题:“加班状态!”,
文本:“您可以成功分配时间段。无论如何”+temp01+“小时数仍然可以分配”,
输入:“信息”,
confirmButtonText:“好的”
},
功能(isConfirm){
如果(我确认){
//window.location.href=“index.php”;
}
}); }, 1);
}
}
});

我想在不同的条件下得到4种类型的警报框,前两个警报框工作,但最后2个警报不工作,因为php变量没有正确地进入ajax成功回调函数,我如何解决上述问题?

您在POST请求中声明了一个变量
$temp
。因此,注入这个变量基本上已经太晚了——这需要在构建资源(例如包含JS的index.html)的初始GET请求上完成

你有两个选择

  • 在为内容提供服务时注入令牌。因为您不应该使用内联JS,所以可以包含一个包含令牌/日期的隐藏字段,以便在以后的POST请求中进行签入
  • 通过单独的AJAX调用,在POST请求之前获取您的令牌/日期

  • 常规:您不应该使用纯文本响应-特别是如果您使用JS处理它们。最好将您的响应编码为JSON,这样您就能够给出结构化的响应。请参阅json_encode()。

    现在,您正在从PHP脚本发送纯文本作为响应。您应该对此进行更改,以便返回正确的数据结构-否则,您将无法在客户端分离文本和变量值。做一个正确的JSON响应,返回一个具有正确密钥的对象,并在客户端相应地处理它。是的,兄弟,我正在寻找JSON方法来完成这项任务。谢谢同志任务完成了。。