我有一个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行正在输出,我无法解决原因。
我是自学成才,所以对笨拙的编码和/或愚蠢的问题道歉。
答案 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++;
}
我觉得这是一个基本问题,我只是没有正确解释自己。我无法使用数组,因为我需要调整公式,所以这个解决方案工作正常。