Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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变量转换为javascript变量_Javascript_Php_Jquery_Ajax - Fatal编程技术网

如何将php变量转换为javascript变量

如何将php变量转换为javascript变量,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图找出用AJAX检索php变量的最佳方法,然后将这些变量转换成javascript变量 假设我的php文件中包含以下内容: echo $total; echo $actual; 编辑:JSON echo json_encode($comments); 如何在AJAX调用success:function(data)中将这些php变量转换为javascript变量{或者有更好的方法吗?你必须做的是json_编码,通过手动进行,或者通过创建这些变量的数组并通过ajax检索。这样你可以使它成为j

我试图找出用AJAX检索php变量的最佳方法,然后将这些变量转换成javascript变量

假设我的php文件中包含以下内容:

echo $total;
echo $actual;
编辑:JSON

echo json_encode($comments);

如何在AJAX调用
success:function(data)中将这些php变量转换为javascript变量{
或者有更好的方法吗?

你必须做的是json_编码,通过手动进行,或者通过创建这些变量的数组并通过ajax检索。这样你可以使它成为java脚本变量。

一旦页面加载,你就必须将它们声明为全局变量。这可以独立完成,也可以使用窗口范围

    <script>
    // On page load

    total = <?php echo $total; ?>;
    actual = <?php echo $actual; ?>;
    // OR
    window.total = <?php echo $total; ?>;
    window.actual = <?php echo $actual; ?>;
    </script>

//页面加载
总数=;
实际值=;
//或
window.total=;
window.actual=;

现在,您可以在成功回调中使用这些变量。

创建一个结果数组,以包含所有要返回的变量。对结果进行编码,而不是对
$comments
进行编码

$result = array('total' => $total, 'actual' => $actual);
echo json_encode($result);
在JavaScript中,将数据类型设置为
json
,jQuery将自动解析它,然后您可以访问变量作为success参数的属性

$.ajax({
    url : '...',
    type : 'post',
    dataType : 'json',
    success : function(result) {
        console.log( result.total );
        console.log( result.actual );
    }
});

有人已经使用了json,所以我将使用一个简单的字符串分隔符。将下面两个代码复制粘贴到两个具有给定名称的文件中,然后在浏览器中打开ajax1.php

ajax1.php

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script type = "text/javascript">
var total;   // JAVASCRIPT VARIABLE.
var actual;  // JAVASCRIPT VARIABLE.
function myAjax ()
{ $.ajax( { url     : "ajax2.php",
            success : function ( data )
                      { var arr = data.split("^^"); // ◄■■ SEPARATE DATA RETURNED.
                        total = arr[0]; // FIRST VALUE.
                        actual = arr[1]; // SECOND VALUE.
                        alert( total );
                        alert( actual );
                      },
            error   : function ( xhr )
                      { alert( "error" );
                      }
        } );
}
    </script>
  </head>
  <body>
    <button onclick="myAjax()">Click here</button>
  </body>
</html>
<?php
$total = 450;
$actual = 10;
echo $total . "^^" . $actual; // "^^" IS THE SEPARATOR. ANYTHING CAN BE USED.
?>

var total;//JAVASCRIPT变量。
var-actual;//JAVASCRIPT变量。
函数myAjax()
{$.ajax({url:ajax2.php),
成功:功能(数据)
{var arr=data.split(“^^”);//◄■■ 返回单独的数据。
total=arr[0];//第一个值。
实际值=arr[1];//第二个值。
警报(总数);
警报(实际);
},
错误:函数(xhr)
{警报(“错误”);
}
} );
}
点击这里
ajax2.php

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script type = "text/javascript">
var total;   // JAVASCRIPT VARIABLE.
var actual;  // JAVASCRIPT VARIABLE.
function myAjax ()
{ $.ajax( { url     : "ajax2.php",
            success : function ( data )
                      { var arr = data.split("^^"); // ◄■■ SEPARATE DATA RETURNED.
                        total = arr[0]; // FIRST VALUE.
                        actual = arr[1]; // SECOND VALUE.
                        alert( total );
                        alert( actual );
                      },
            error   : function ( xhr )
                      { alert( "error" );
                      }
        } );
}
    </script>
  </head>
  <body>
    <button onclick="myAjax()">Click here</button>
  </body>
</html>
<?php
$total = 450;
$actual = 10;
echo $total . "^^" . $actual; // "^^" IS THE SEPARATOR. ANYTHING CAN BE USED.
?>


从PHP代码返回JSON。然后,生成的反序列化JS对象可以同时保存这两个值。将所有值放在一个数组/对象中,并使用
JSON\u encode()一次返回所有值
。然后你可以很容易地用javascript解析它。你使用任何php框架吗?我知道一个用于laravel的框架可以做到这一点。没有框架。一旦我通过JSON发送它,我怎么解析它呢?假设我现在是这样从php发送的:
echo JSON_encode($total);
谢谢。我从来没有看到过发布的这个答案。效果非常好。