我如何在提交时更新捐赠目标百分比栏


How do I make donation goal percent bar update on submit?

我有一个显示百分比栏的脚本,我计划将其用于我们的捐赠目标,这样用户就可以看到我们在特定月份需要多少钱。这是当前的代码:

<style>
.percentbar { background:#CCCCCC; border:1px solid #666666; height:25px; }
.percentbar div { background: #28B8C0; height: 25px; border-right:1px solid black }
</style>
</head>
<body>
<?php
include("config.php");
$data = mysql_query("SELECT * FROM donationgoal");
    while ($info = mysql_fetch_array($data)) {
        if (isset($_POST['add'])) {
    $add = mysql_real_escape_string($_POST['add']);
            $total = $info['total'] + $add;
        }
    mysql_query("UPDATE donationgoal SET total = ".$total." ");
            $value = $info['total'];
    }
        echo $value;
// Testing numbers. Replace with your own.
$max = 100;
$scale = 2.0;
// Get Percentage out of 100
if ( !empty($max) ) { $percent = ($value * 100) / $max; } 
else { $percent = 0; }
// Limit to 100 percent (if more than the max is allowed)
if ( $percent > 100 ) { $percent = 100; } 
?>
<form method="post">
<input type="text" name="add" />
<input type="submit" />
</form>
<div class="percentbar" style="width:<?php echo round(100 * $scale); ?>px;">
  <div style="width:<?php echo round($percent * $scale); ?>px;"></div>
</div>
Percentage: <?php echo $percent; ?>%
</body>

现在这完全正常(完美地更新了表),但是,在提交后页面刷新后,栏不会改变。唯一会改变的方法是在我提交表单后手动刷新页面。有没有办法让它在初次提交后更新栏?

这是因为您的insert查询在select查询之后,您必须在从mysql获取数据之前插入新记录你的代码是这样的:

<style>
.percentbar { background:#CCCCCC; border:1px solid #666666; height:25px; }
.percentbar div { background: #28B8C0; height: 25px; border-right:1px solid black }
</style>
</head>
<body>
<?php
include("config.php");
if (isset($_POST['add'])) {
    $add = mysql_real_escape_string($_POST['add']);
    mysql_query("UPDATE donationgoal SET `total` = `total` + ".$add." ");
}
$data = mysql_query("SELECT * FROM donationgoal");
    while ($info = mysql_fetch_array($data)) {
            $value = $info['total'];
    }
        echo $value;
// Testing numbers. Replace with your own.
$max = 100;
$scale = 2.0;
// Get Percentage out of 100
if ( !empty($max) ) { $percent = ($value * 100) / $max; } 
else { $percent = 0; }
// Limit to 100 percent (if more than the max is allowed)
if ( $percent > 100 ) { $percent = 100; } 
?>
<form method="post">
<input type="text" name="add" />
<input type="submit" />
</form>
<div class="percentbar" style="width:<?php echo round(100 * $scale); ?>px;">
  <div style="width:<?php echo round($percent * $scale); ?>px;"></div>
</div>
Percentage: <?php echo $percent; ?>%
</body>

BTW:请停止使用mysql,改为使用mysqli