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