我有这个while循环,用于回显SQL数据库中的条目。我有一个“添加到购物车”按钮,它应该从列表中删除条目并将其添加到其他位置。这部分有效,但是一旦我点击“添加到购物车”按钮,该条目不会立即删除,我必须手动刷新页面或访问另一个页面并返回以查看该项目已被删除。我尝试在按钮的onclick属性上使用以下(和几个相似的)行,但它不起作用。
echo "<br /><center><input type='submit' name='submitAdd' value='Add to Cart' onclick='window.location.reload();'></center>";
任何建议都表示赞赏。
谢谢。
编辑:这是我用来生成表格的while循环。它位于一个标签内。
while ($row = mysql_fetch_array($song_query)) {
foreach ($_SESSION['selected_items'] as $key => $value) {
if ($value == $row['Item_ID']) {
$rowID = $row['Item_ID'];
echo "<tr style='background-color: #66FFFF;'>";
echo "<td><input type='checkbox' name='removeFromCart[]' value='$rowID'></td>";
echo "<td>" . $row['Item_ID'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['Artist'] . "</td>";
echo "<td>" . $row['Album'] . "</td>";
echo "<td>" . $row['Time'] . "</td>";
echo "<td>" . $row['Year'] . "</td>";
echo "<td>" . $row['Bit_Rate'] . "</td>";
echo "<td>" . $row['Sample_Rate'] . "</td>";
echo "</tr>";
}
}
}
答案 0 :(得分:6)
PHP是一种服务器端语言,因此在将结果显示给用户之前,将在服务器上执行任何“操作”。为了在页面加载到用户浏览器后修改页面,您必须使用客户端语言,例如JavaScript。如果您想在不必重新加载页面的情况下显示购物车的更新,那么使用AJAX请求是您的最佳选择。查看http://www.w3schools.com/ajax/上的教程,如果您对如何实施该教程有任何疑问,请与我们联系:)
更新:强制重新加载
如果您想坚持按原样重新加载页面,请尝试onclick='window.location.reload(true);'
而不是onclick='window.location.reload();'
。 true
参数强制向服务器发出get请求。 http://www.w3schools.com/jsref/met_loc_reload.asp
答案 1 :(得分:0)
如果您要查找的唯一功能是在按钮的点击上重新加载页面,我通常这样做的方式是onclick =&#34; history.go(0)&#34;
但是如果表单按钮是提交表单并且已经重新加载页面的话,那我就不明白为什么你不能把while循环放在你的其他代码之后/ p>
检查表格(){ 更新SQL DB }
WHILE(){ 输出数据库数据 }
答案 2 :(得分:0)
我使用指向同一页面的链接
<a href="<?php $_SERVER['PHP_SELF']; ?>">Recargar</a>
答案 3 :(得分:0)
不是按钮,而是一个简单的链接,但可能对某些用户仍然有用:
<?php
$page = $_SERVER['PHP_SELF'];
print "<a href=\"$page\">Reload this page</a>";
?>
答案 4 :(得分:0)
使用 header() 函数在 PHP 中刷新网页。 PHP header() 函数以原始形式向客户端或浏览器发送 HTTP 标头。
在将 HTML、XML、JSON 或其他输出发送到浏览器或客户端之前,原始数据与服务器发出的请求(尤其是 HTTP 请求)一起作为标头信息发送。
语法: header ("header:url of the page")
我希望这能让你走上正确的道路。