我无法将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();
?>
答案 0 :(得分:0)
在PHP中使用json_encode()输出数组的JSON字符串。然后,您可以在客户端输出结果以查看响应。它应该是一个javascript对象。
答案 1 :(得分:0)
答案 2 :(得分:0)
您的请求结果将@$x_1
和@$x_2
作为一个字符串返回。您可以使用x_1和x_2
答案 3 :(得分:0)
我建议创建一个JSON响应以获取不同的变量&#39;:
$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(','));
}
});