【问题标题】:Empty value when going from PHP => JSON => JS从 PHP => JSON => JS 时的空值
【发布时间】:2013-01-24 03:17:04
【问题描述】:

我创建了一个到我的数据库的 PHP 连接并进行了以下查询:

$taxRates = array();
while($row = mysql_fetch_assoc($result)) {
    $taxRates[] = $row['mar_tax_rate'];
}

然后我将结果编码如下:

$jsonobj = json_encode($taxRates, JSON_NUMERIC_CHECK);
echo "This is jsonobj:<br>" . $jsonobj . "<br>";

返回:

This is jsonobj:
[0,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35]

我遇到的问题是这个。当我尝试将这些结果回显到 JS 中时,我的结果是空的(据我所见)——不是空数组,什么都没有。这就是我尝试将结果输入 JS 的方式:

data:[<?php echo $jsonobj; ?>]

返回:

data:

我尝试使用

来提醒 PHP 变量
alert("<?php echo $jsonobj; ?>");  

产生警报,但也是空的。

有什么想法吗?

这里是完整的代码:

<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<script type="text/javascript" src="includes/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="includes/js/highcharts.2.3.2.js"></script>
<script type="text/javascript" src="includes/js/highstock.src.js"></script> 

<script type="text/javascript">
$(document).ready(function() {
  drawChart();
});

function drawChart() {

alert("<?php echo join($jsonobj); ?>");
var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'chart',
        type: 'column',
    },      
    credits: {
        enabled: false
    },  
    series: [{
        data:[<?php echo $jsonobj; ?>]
    }]
});
};
</script>

</head>

<body>

<button style="height:100px; width:300px;" onclick="drawChart();">Redraw the Chart</button><br />

<div id="chart"></div>

<?php 
$link = mysql_connect('url', 'username', 'password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
//mysql_close($link);

$db_selected = mysql_select_db('bloch',$link); 
if (!$db_selected) {
    die ('Can\'t use Bloch Database : ' . mysql_error());
}

$result = mysql_query('SELECT mar_tax_rate from bloch.bloch_deficit');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

$taxRates = array();
while($row = mysql_fetch_assoc($result)) {
    $taxRates[] = $row['mar_tax_rate'];
}

$jsonobj = json_encode($taxRates, JSON_NUMERIC_CHECK);
echo "This is jsonobj:<br>" . $jsonobj . "<br>";
?>

</body>
</html>

【问题讨论】:

  • "...进行了以下查询。"接下来的不是查询...无论如何,您不能向我们展示所有代码。如果您为我们提供的第二个 sn-p 有效而第三个无效(同时测试它们),则您必须更改 $jsonobj 变量中的某些内容。
  • 我添加了全套 HTML、JS 和 PHP。同样的问题。警报返回为空, data:... 也是如此,即使 PHP 中的回显根据需要显示数组。再次感谢您的帮助!

标签: php javascript json


【解决方案1】:

在您尝试将其放入 HTML 之前,您的变量没有被定义。在您的 HTML 之前使用您需要的内容创建变量,以便将其正确发送到页面。

【讨论】:

  • 我想这可能是这种情况,所以我做了一些研究并重新安排了一些事情,它正在工作。我从 中取出所有 PHP 并将其放在一个单独的文件中。然后我在body标签的开头使用了 。这没有用,所以我把我的 JS 移到了 的底部,一切都很好。感谢您的建议!我知道这可能很容易解决,因此我的“新手”序言;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-14
  • 2019-04-05
  • 1970-01-01
相关资源
最近更新 更多