【问题标题】:PHP Refresh button onclickPHP 刷新按钮 onclick
【发布时间】:2013-04-03 01:02:57
【问题描述】:

我有这个 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 html sql button onclick


【解决方案1】:

使用 header() 函数在 PHP 中刷新网页。 PHP header() 函数以原始格式向客户端或浏览器发送 HTTP 标头。

在将 HTML、XML、JSON 或其他输出发送到浏览器或客户端之前,会发送原始数据以及服务器发出的请求(尤其是 HTTP 请求)作为标头信息。

语法: header ("header: 页面的url")

我希望这能让你走上正确的道路。

【讨论】:

    【解决方案2】:

    不是一个按钮,而是一个简单的链接,但可能对某些人仍然有用:

    <?php 
    $page = $_SERVER['PHP_SELF'];
    print "<a href=\"$page\">Reload this page</a>";
    ?>
    

    【讨论】:

      【解决方案3】:

      我使用指向同一页面的链接

      <a href="<?php $_SERVER['PHP_SELF']; ?>">Recargar</a>
      

      【讨论】:

        【解决方案4】:

        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

        【讨论】:

        • 是的,我尝试使用 JavaScript 使用诸如 onclick='window.location.reload(); 之类的函数。在按钮上,但它不起作用。我从未使用过 AJAX,但如果它解决了这个问题,我会尝试一下。
        • window.location.reload(); 确实是javascript,但它只是刷新页面,这违背了动态网页的目的哈哈。阅读教程,然后回复我:)
        • 另外,你愿意使用 jQuery 吗?它会让 ajax/更新你的页面更容易..
        • 我需要以与按 F5 相同的方式刷新页面的原因是立即显示使用 SQL 表中的 while 循环生成的表中条目删除的差异。我不介意使用 JQuery 或 ajax,但我现在不熟悉使用它们,也不知道如何执行这样的操作。
        • 如果您可以显示您生成的表格的代码,或者提供指向您的页面的链接,我可以看看是否可以帮助您处理 ajax/jQuery..
        【解决方案5】:

        如果您要寻找的唯一功能是在单击按钮时重新加载页面,我通常这样做的方式是 onclick="history.go(0)"

        但是如果表单按钮是提交表单并且已经重新加载页面,那么我不明白为什么你不能像这样在其他代码之后放置 while 循环,

        检查表格(){ 更新 SQL 数据库 }

        WHILE () { 输出数据库数据 }

        【讨论】:

        • 您是如何提交表单的?
        • "
          ";
        • 因此,如果您使用该按钮发布表单,javascript 将无法以这种方式工作,提交表单时页面是否已经重新加载?因为如果是这样,您可以在 php 代码的末尾使用这一行来提交到数据库:header("location: index.php");
        • while 循环在表单中,因为我的代码使用了 $_POST 变量。
        • 我不确定它是否会重新加载,尽管我在提交时设置的回声确实会出现,因此信息会以某种方式发生变化。我确实需要找到与按 F5 时相同的功能。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-28
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        相关资源
        最近更新 更多