簡體   English   中英

如何將多個變量從PHP傳遞到extenal js文件?

[英]How to pass multiple variable from PHP to extenal js file?

我無法將PHP中的多個變量(從mysql的fectch數據之后)傳遞給js extenal文件。 因此,如果我使用echo $x_1它可以傳遞給html文件中的#watts_value並正常顯示。

但我想將變量$x_1傳遞給#watts_value ,將$x_2傳遞給kwh_value 我已經嘗試這樣做,但它只是將所有值傳遞給#watts_value

我不知道如何將變量從php傳遞給javascript。 請建議我或告訴我如何做到這一點。

這是我的HTML

<div id="watts_value"></div>
<div id="kwh_value"></div>



這是我的main.js

 $(document).ready(function (){ function read(){ $.post("get_db.php", function(data, status){ if(status == 'success'){ $('#watts_value').html(data); } else{ $('#info').html("Error!"); } }); }; read(); setInterval(read,1000); }); 


這是我的php文件

<?php
$servername="localhost";
$username="root";
$password="";
$dbname="rt_db";
$tbname="rt_data";

$conn=new mysqli($servername, $username, $password, $dbname);
if($conn->connect_error){
    die("Connection failed: ".$conn->connect_error);
}


$sql_1="SELECT * FROM $tbname WHERE SensorId ='1'";
$sql_2="SELECT * FROM $tbname WHERE SensorId ='2'";

$result_1=$conn->query($sql_1);
$result_2=$conn->query($sql_2);

if($result_1->num_rows>0){
    while($row=$result_1->fetch_assoc()){
        $x_1=$row['SensorData'];
        echo $x_1;
    }
}
if($result_2->num_rows>0){
    while($row=$result_2->fetch_assoc()){
        $x_2=$row['SensorData'];
        echo $x_2;
    }
}

else {
    echo "fail";
}

$conn->close();
?>

在PHP中使用json_encode()輸出數組的JSON字符串。 然后,您可以在客戶端輸出結果以查看響應。 它應該是一個javascript對象。

你可以把你需要的值放到一個數組中,json對它進行編碼並回顯它。

您可能會發現以下主題很有用。

從PHP腳本返回JSON

希望這可以幫助。 :)

您的請求結果將@$x_1@$x_2作為一個字符串返回。 您可以使用x_1和x_2的鍵返回JSON對象

我建議創建一個JSON響應來獲取不同的'變量':

$jsonObject = ['WattsValue' => [], 'KwhValue' => []];

while($row = $result_1->fetch_assoc()){
    $jsonObject['WattsValue'][] = $row['SensorData'];
}

while($row = $result_2->fetch_assoc()){
    $jsonObject['KwhValue'][] = $row['SensorData'];
}

$conn->close();

header('Content-Type: application/json');
echo json_encode($jsonObject);
http_response_code(200);
exit;

使用jQuery時,它會將其識別為JSON,並且能夠直接使用JSON對象:

$.post("get_db.php", 
    function(data, status){

    if(status === 'success'){
        $('#watts_value').text(data.WattsValue.join(','));
        $('#kwh_value').text(data.KwhValue.join(','));
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM