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

时间:2016-11-02 16:35:19

标签: javascript php jquery ajax

我试图弄清楚用AJAX检索php变量的最佳方法,然后将这些变量变成javascript变量。

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

echo $total;
echo $actual;

编辑:JSON

echo json_encode($comments);

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

4 个答案:

答案 0 :(得分:1)

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

$result = array('total' => $total, 'actual' => $actual);
echo json_encode($result);

在JavaScript中,将dataType设置为json,jQuery将自动解析它,然后您可以将变量作为success参数的属性进行访问。

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

答案 1 :(得分:0)

你需要做的是json_encode,通过手动或通过创建这些变量的数组并通过ajax检索它。通过这个你可以使它成为java脚本变量。

答案 2 :(得分:0)

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

    <script>
    // On page load

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

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

答案 3 :(得分:0)

有人已经使用了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>

<强> ajax2.php

<?php
$total = 450;
$actual = 10;
echo $total . "^^" . $actual; // "^^" IS THE SEPARATOR. ANYTHING CAN BE USED.
?>