如何将php变量传入ajax success函数并分配给JavaScript变量
我想访问前端ajax成功回调函数中的后端php变量。怎么做? 我的代码php代码如何将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
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处理它们。最好将您的响应编码为JSON,这样您就能够给出结构化的响应。请参阅json_encode()。现在,您正在从PHP脚本发送纯文本作为响应。您应该对此进行更改,以便返回正确的数据结构-否则,您将无法在客户端分离文本和变量值。做一个正确的JSON响应,返回一个具有正确密钥的对象,并在客户端相应地处理它。是的,兄弟,我正在寻找JSON方法来完成这项任务。谢谢同志任务完成了。。