我正在做一個小型的個人網絡投資組合,以學習網站開發。我列出了所有「買入」的股票,我想從雅虎財經實時更新價格。我已經可以進行價格更新了,但是我重寫了使用javascript調用新的庫存的表格。使用ajax更新股票價格
我知道必須有一個更清潔的方式。我正在嘗試使用javascript更新價格,但我認爲我沒有做正確的事情。
這是我到目前爲止。
Portfolio.php顯示所有我
<?php foreach ($shares as $row): ?>
<tr >
<td><?php echo $row["symbol"];?></td>
<td><a href="funds.php" id="<?php echo $row["symbol"]?>"><?php echo $row["name"];?></a></td>
<td style="text-align: right;"><?php echo $row["shares"];?></td>
<td id="price" style="text-align: right;">$ <?php echo number_format($row["price"],2);?></td>
<td style="text-align: right;"><?php
$change = number_format($row["change"],2);
echo sprintf("%+1.2f", $change);
echo " (";
echo $row["pct"];
echo " )";
?></td>
<td style="text-align: right;">$ <?php echo $row["dayGain"];?></td>
<td style="text-align: right;">$ <?php echo number_format($row["total"],2);?></td>
</tr>
<?php endforeach; ?>
</table>
<script type="text/javascript" src="../html/js/update.js" ></script>
股票然後,我有update.php返回從雅虎財經的所有股票信息作爲JSON
<?php
// configuration
require("../includes/config.php");
//query user's portfolio
$rows = query("SELECT * FROM shares WHERE id = ?", $_SESSION["id"]);
$cash = query("SELECT cash FROM users WHERE id = ?", $_SESSION["id"]);
//create array to store the shares
$shares = array();
//for each of the user info
foreach($rows as $row){
$yql_base_url = "http://query.yahooapis.com/v1/public/yql";
$yql_query = "select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22".$row['symbol']."%22)%0A%09%09";
$env = "env=http%3A%2F%2Fdatatables.org%2Falltables.env";
$yql_full_query = $yql_base_url . "?q=" . $yql_query . "&format=json&" . $env;
$session = curl_init($yql_full_query);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($session);
$stock = json_decode($json);
if($stock->query->results !== false){
$shares [] = array(
"symbol" => $stock->query->results->quote->symbol,
"price" => $stock->query->results->quote->LastTradePriceOnly
);
}
}
$return = array("price" => $shares);
echo json_encode($return);
?>
而第三個文件是update.js我試圖讓javascript
$(document).ready(function(){
function stock() {
$(function() {
$.getJSON('../update.php',function(result){
$("div#price2").html(result.price);
});
});
stock();
setInterval(stock(), 10000);
});
});
如果我直接轉到u pdate.php我可以將價格視爲json。我認爲問題在於update.js文件,但我無法弄清楚問題所在。我甚至無法在price字段中輸出update.js中的Hello。
我想要做的是顯示我存儲在數據庫中的股票,然後使用ajax和javascript更新價格。任何幫助,將不勝感激。提前致謝。
在你的html中沒有任何地方出現一個id爲'price'的元素,所以你的成功函數基本上什麼都不做。 –