我目前正在开发股票市场模拟器,并且试图显示每个虚拟公司的第一个生成的价格。为此,我用PHP生成了价格并将其添加到数组'$ firstValue'中。我还为我的HTML元素生成了ID,这些ID将在其中显示并存储在“ $ priceIdentifiers”中。下面是用于生成值的代码:
PHP:
$priceIdentifiers = array("Prices1", "Prices2", "Prices3");
$normalDistChangers = array("-1000", "1000");
$highValues = array("2500", "4850", "1780");
$lowValues = array("2200", "4300", "1400");
$firstValue = array();
for ($x = 0, $length = 3; $x < $length; $x++)
{
$tempValue = (rand($lowValues[$x], $highValues[$x]) / 100);
$tempMean = log(($tempValue) / (rand($lowValues[$x], $highValues[$x]) / 100));
$tempAnnStdDev = sqrt(365 * ($tempMean * $tempMean));
$tempNormalDist = (rand($normalDistChangers[0], $normalDistChangers[1]) / 1000);
$tempPrice = number_format(($tempValue * (1 + ($tempMean * (1/100000)) + $tempAnnStdDev * sqrt(1 / 100000) * $tempNormalDist)), 2, '.', '');
array_push($firstValue, $tempPrice);
}
下面是将在其中显示价格的HTML元素的代码。由于我目前正在与3家公司合作,因此生成了3行。
HTML和PHP:
<td style = "text-align:center;font-size:15pt" id = "<?php echo $priceIdentifiers[$a]; ?>"></td>
其中$ a是一个等于0的变量,并递增直到其值等于2。
生成值已经成功,并且我在控制台日志中看到,当显示列表的内容时,列表中列出了不同公司的3个价格,但是当尝试使用以下Javascript代码显示它们时,它将最终显示整个数组,而不是单个元素:
Javascript:
var tempPriceOne = <?php echo json_encode($firstValue); ?>;
var a = 0;
var highPrice = tempPriceOne;
var inv = setInterval(function() {
if (a < 50)
{
document.getElementById("Prices1").innerHTML = tempPriceOne;
此刻,当您浏览网站http://leonid.chashchin.net/stockMarket.php时,它将在第一行“价格”行中显示整个数组。我需要修改什么,以便第一个元素显示在第一行中,第二个元素显示在第二行中,依此类推?
答案 0 :(得分:1)
您正在打印/分配整个数组,而不仅仅是单个元素。
这是打印单个元素的方式:
document.getElementById("Prices1").innerHTML = tempPriceOne[0];
document.getElementById("Prices2").innerHTML = tempPriceOne[1];
document.getElementById("Prices3").innerHTML = tempPriceOne[2];