0

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

<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>

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

4

1 回答 1

0

那是因为您的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>

顺便说一句:请请停止使用 mysql 并mysqli改用。

于 2013-08-22T01:12:57.443 回答