-2

株式のポートフォリオを作成してphpとjavascriptを学ぼうとしています。私がやりたいことは、javascript を使用してページを更新せずに、テーブルの価格セルを自動的に更新することです。その価格フィールドのみをポートフォリオに取得するために新しい php ファイルを作成しましたが、動作しないようです。その価格フィールドで多くのエラーが発生します。ここにすべてのファイルを入れましたpastebin。どんな助けでも大歓迎です。 ここに画像の説明を入力

portfolio.php file

<table class="table table-hover center-table table-bordered">
        <tr>
        <th>Symbol</th>
        <th>Name</th>
        <th>Shares</th>
        <th>Price</th>
        <th>Total</th>
        </tr>
<?php foreach ($shares as $row): ?>

        <tr>
        <td><?= $row["symbol"]?></td>
        <td><?= $row["name"]?></td>
        <td><?= $row["shares"]?></td>

        <td id="price">$<?= number_format($row["price"],2)?></td>

        <td>$<?= number_format($row["total"],2)?></td>
        </tr>

<? endforeach ?>



<tr>
    <td>CASH</td>
    <td></td>
    <td></td>
    <td></td>
    <td>$<?= number_format($cash[0]["cash"], 2)?></td>

</tr>

</table>

<script type="text/javascript" src="js/update.js" ></script>

index.php ファイル

<?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 = [];

    //for each of the user info

    foreach($rows as $row){

        //lookup stock info
        $stock = lookup($row["symbol"]);


        if($stock !== false){

            $shares[] = [
                "name" => $stock["name"],
                "price" => $stock["price"],
                "shares" => $row["shares"],
                "symbol" => $row["symbol"],
                "total" => $row["shares"]*$stock["price"]

            ];
                 //dump($shares);      
        }

    }

// render portfolio
render("portfolio.php", ["shares" => $shares,"cash" => $cash, "title" => "Portfolio"] );  
?>

update.php

<?php

require("../includes/functions.php"); 
require("../includes/config_update.php");

$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 = [];

    //for each of the user info

    foreach($rows as $row){

        $stock = lookup($row["symbol"]);

        if($stock !== false){

            $shares[] = [

                "name" => $stock["name"],
                "price" => $stock["price"],
                "shares" => $row["shares"],
                "symbol" => $row["symbol"],
                "total" => $row["shares"]*$stock["price"]
            ];

        }
    }

// render portfolio
render("portfolio.php", ['shares' => $shares, 'cash' => $cash]);  
?>

update.js

$(document).ready(function(){
    var updater = setTimeout(function(){
        $('#price').load('update.php', 'update=true');
    },6);
});

これを最初に実行すると、価格セルにテーブル全体とこれらのエラー メッセージが表示されます31行目のportfolio.php

もうエラーは発生しませんが、テーブルの価格フィールド内にページ全体が表示されるようになりました。

4

1 に答える 1

1

index.php でパラメーターの配列を渡していますが、そのうちの 1 つに key がありますsharesが、update.php ではその配列を返そうとしているので、update.php でこれを変更してください。

 render("portfolio.php", $share);

render("portfolio.php", ['shares' => $share]);  
于 2013-03-27T16:19:26.227 に答える