javascript - 如何将多个变量从 PHP 传递到外部 js 文件?

标签 javascript php html mysql ajax

我无法将多个变量从 PHP(从 mysql 获取数据后)传递到 js 外部文件。因此,如果我使用 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();
?>

最佳答案

我建议创建一个 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(','));
    }
});

关于javascript - 如何将多个变量从 PHP 传递到外部 js 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43440706/

相关文章:

javascript - 如果我在窗口宽度大于 800px 时刷新网站,jQuery 单击事件不起作用

php - 在 PHP 中不使用 WSDL 与 soap API 交互

php - 如何创建 API

javascript - 如何更改默认的Literally Canvas绘图区域高度?

html - 删除页脚图像和页脚背景之间的填充

html - 如何改变CSS中元素的不透明度?

javascript - 使用列名获取存储值 - EXTJS 4

javascript - Fetch API 在 Chrome 中泄漏内存

javascript - jQuery 选择器不适用于数据表

php - mysqli_num_rows() 期望参数 1 为 mysqli_result, object