【发布时间】:2017-04-17 02:54:49
【问题描述】:
我无法将多个变量从 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();
?>
【问题讨论】:
-
您应该查找
IN子句,就像在WHERE SensorId IN (1,2)中一样,而不是运行两个单独的查询。 -
警告:使用抑制错误的
@运算符会掩盖代码中的问题,并使此类调试问题变得更加复杂。这是万不得已的工具,只能在特殊情况下使用。
标签: javascript php html mysql ajax