我有这个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>";
}
}
}
PHP是一种服务器端语言,因此在结果显示给用户之前,任何"操作"都将在服务器上执行。为了在用户浏览器上加载页面后修改页面,必须使用客户端语言,比如JavaScript。如果希望在不重新加载页面的情况下显示购物车的更新,那么使用AJAX请求是最好的选择。查看http://www.w3schools.com/ajax/上的教程,如果你对如何实现一个有任何问题,请告诉我:)
Update: Force Reload
如果你只是想坚持重新加载页面,尝试onclick='window.location.reload(true);'
而不是onclick='window.location.reload();'
。true
参数强制向服务器发送get请求。http://www.w3schools.com/jsref/met_loc_reload.asp
我使用了指向同一页面的链接
<a href="<?php $_SERVER['PHP_SELF']; ?>">Recargar</a>
如果您想要的唯一功能是在单击按钮时重新加载页面,我通常这样做:onclick="history.go(0) "
但是如果表单按钮是提交表单的并且已经重新加载了页面那么我不明白为什么你不能把while循环放在其他代码后面,像这样,
CHECK FOR FORM() {更新SQL数据库}
WHILE () {输出db数据}
不是一个按钮,而是一个简单的链接,但可能对某些人仍然有用:
<?php
$page = $_SERVER['PHP_SELF'];
print "<a href='"$page'">Reload this page</a>";
?>
在PHP中使用header()函数刷新网页。PHP header()函数以原始形式向客户端或浏览器发送HTTP头信息。
在HTML, XML, JSON或其他输出被发送到浏览器或客户端之前,原始数据作为头信息与服务器发出的请求(特别是HTTP请求)一起发送。
的语法:页眉(" Header:页面url ")