将mysql数据输出到jquery的变量中

时间:2011-02-14 03:25:10

标签: php jquery mysql variables

我有一个2字段数据库(daynumber& datavalue),我用php检索的数据然后创建并将变量传递给jquery以便与图形一起使用。

我不是这样做的,因为我需要将一个公式应用于datavalue字段。公式可以由用户更改。

在jquery中,我需要能够做到这一点:

cday_1 = <?php echo $day_1?>;
cday_2 = <?php echo $day_2?>;
tday_1 = (<?php echo $day_1 ?> * formula1 / formula2;
tday_2 = (<?php echo $day_2 ?> * formula1 / formula2;

cday系列和tday系列将在图表上单独绘制。

我的问题是我可以在php中手动命名每个var,即:

$day_1=mysql_result($result,$i,"datavalue");

但我有30行,我更喜欢用循环来做。到目前为止,我已经走到了这一步:

$i=0;
while ($i < $num) {
$datavalue=mysql_result($result,$i,"datavalue");
echo "\$day_";
echo $i;
echo " = ";
echo $datavalue;
echo "<br>";
$i++;
}

因此我遇到了一些问题。

第一个问题是,虽然一切都在回应,但我不确定如何实际创建这样的变量(!)。

第二个问题是数据库中只有30行,但实际上有34行正在输出,我无法解决原因。

我是自学成才,所以对笨拙的编码和/或愚蠢的问题道歉。

2 个答案:

答案 0 :(得分:1)

您可以将它们存储在PHP端数组中:

$days = array(
    'cday' => 'the cday value',
    'dday' => 'the dday value',
    etc...
);

然后通过json_encode()自动将它们转换为Javascript数组/对象。该对象可以作为AJAX响应发送到您的页面,甚至可以直接嵌入到页面中:

<script type="text/javascript">
    var days = <?php echo json_encode($days) ?>;
</script>

之后您只需像访问JS中的任何其他数组一样访问这些值。

答案 1 :(得分:1)

最终做到了这一点:

$i=0;
while ($i < $num) {
${"day_$i"}=mysql_result($result,$i,"datavalue");
$i++;
}

我觉得这是一个基本问题,我只是没有正确解释自己。我无法使用数组,因为我需要调整公式,所以这个解决方案工作正常。