我想弄清楚用AJAX檢索php變量的最佳方法,然後將這些變量變成javascript變量。如何將php變量變成javascript變量
比方說,我的PHP文件中我有以下幾點:
echo $total;
echo $actual;
編輯:JSON
echo json_encode($comments);
我怎樣才能把這些PHP變量到JavaScript變量的AJAX調用中success: function (data) {
還是有一個更好的方法來做到這一點?
我想弄清楚用AJAX檢索php變量的最佳方法,然後將這些變量變成javascript變量。如何將php變量變成javascript變量
比方說,我的PHP文件中我有以下幾點:
echo $total;
echo $actual;
編輯:JSON
echo json_encode($comments);
我怎樣才能把這些PHP變量到JavaScript變量的AJAX調用中success: function (data) {
還是有一個更好的方法來做到這一點?
創建一個結果數組以包含所有想要返回的變量。對結果進行編碼而不是$comments
。
$result = array('total' => $total, 'actual' => $actual);
echo json_encode($result);
在JavaScript中,具體的數據類型設置爲json
和jQuery會自動解析它,那麼你可以訪問的變量作爲成功的說法性能。
$.ajax({
url : '...',
type : 'post',
dataType : 'json',
success : function(result) {
console.log(result.total);
console.log(result.actual);
}
});
謝謝。我從來沒有看到這個答案張貼。完美工作。 – Paul
你必須做的是json_encode,通過手工或通過製作這些變量的數組並通過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>
現在,您可以在成功回調中使用這些變量。
有人已經使用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.
?>
從您的PHP代碼返回JSON。結果反序列化的JS對象可以保存兩個值。 –
將它全部放在一個數組/對象中,並使用'json_encode()'一次性全部返回。然後你可以很容易地解析它在JavaScript中。 – jeroen
你使用任何PHP框架?我知道一個[包](https://github.com/laracasts/PHP-Vars-To-Js-Transformer)laravel就是這麼做的。 –