php - PHP发布更新页面后需要刷新/重定向页面

标签 php html mysql

这是正在发生的事情:

  • 用户使用复选框选择日期,并将信息提交到 MYSQL 数据库以存储并显示在表格中。
  • 数据库更新,但网页上的表格没有更新。您需要刷新页面并询问“您确定要再次发送表单吗?取消/发送”
<?php require_once("./includes/session.php"); ?>
<?php require_once("./includes/db_connection.php"); ?>
<?php require_once("./includes/functions.php"); ?>
<?php include("./includes/layouts/header.php"); ?>

    <div class="wrapper">
        <?php table_date(); ?>
        <div id="current_wk_head" >
            <?php current_table(); ?>
        </div>
    </div> 

    <div class="wrapper">
        <h4 id="directions">Put a check-mark by the days you want to play!</h4>
        <form name="input" action="wk1.php" method="post">
        <?php week1_changes(); ?>

        <div id="submit_section">
            <input type="submit" name="playdaz" value="SUBMIT" class="button">

            <form name="input" action="wk1.php" method="post">
                <input type="submit" name="goback" value="BACK" class="button">
            </form>
        <p> When you click SUBMIT all days are submitted so, each day should be appropriately checked.</p>
        <p> No updates within 24hrs of next play day.</p>
        </div>
    </div>

    <iframe id="forecast_embed" type="text/html" frameborder="0" height="245" src="http://forecast.io/embed/#lat=35.795925&lon=-79.228608&name=Chapel Ridge&color=#6BB9F0&font=Open+Sans"> </iframe>

</div>  <!--End container div-->
</body>
</html>

以上是用户提交日期的网页。

if (($today=="Fri") && ($hd_flag=="yes"))
{       
    //Friday after the cron run
    echo "<div id=\"checkboxes\">
                <label class=\"tag\"><input type=\"checkbox\" name=\"MON_PRI\" value=\"YES\" class=\"regular-checkbox\"/>MON_PRI</label> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"MON_ALT\" value=\"YES\" class=\"regular-checkbox\"/>MON_ALT</label> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"WED\" value=\"YES\" class=\"regular-checkbox\" />WED</label> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"FRI\" value=\"YES\" class=\"regular-checkbox\" />FRI</label>
            </div>";
}
elseif ($today=="Sat")
{
    echo "<div id=\"checkboxes\">
                <label class=\"tag\"><input type=\"checkbox\" name=\"MON_PRI\" value=\"YES\" class=\"regular-checkbox\"/>MON_PRI</label> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"MON_ALT\" value=\"YES\" class=\"regular-checkbox\"/>MON_ALT</label> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"WED\" value=\"YES\" class=\"regular-checkbox\" />WED</label> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"FRI\" value=\"YES\" class=\"regular-checkbox\" />FRI</label>
            </div>";
}
elseif (($today=="Mon") || ($today=="Sun")) 
{
    echo "<div id=\"checkboxes\">
                <label class=\"tag\"><input type=\"checkbox\" name=\"WED\" value=\"YES\" class=\"regular-checkbox\" />WED</label> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"FRI\" value=\"YES\" class=\"regular-checkbox\" />FRI</label>
            </div>";
}
elseif (($today=="Tue") || ($today=="Wed")) 
{
echo "<div id=\"checkboxes\"> 
                <label class=\"tag\"><input type=\"checkbox\" name=\"FRI\" value=\"YES\" class=\"regular-checkbox\" />FRI</label>
            </div>";
} 

if(isset($_POST['playdaz'])) 
{
    $LastName=$_SESSION['LAST_NAME'];   

    $monpri = (isset($_POST['MON_PRI'])) ? "YES" :"NO";
    $monalt = (isset($_POST['MON_ALT'])) ? "YES" :"NO";
    $wed = (isset($_POST['WED'])) ? "YES" :"NO";
    $fri = (isset($_POST['FRI'])) ? "YES" :"NO";

    //Cannot select 2 courses on the same day
    if (($monpri =="NO") || ($monalt=="NO"))
    {       
        $LastName=$_SESSION['LAST_NAME'];       

        if (($today=="Fri") && ($hd_flag=="yes"))
        {   
            //Friday after the cron runs
            $query = "UPDATE players SET MON_PRI='$monpri',MON_ALT='$monalt',WED='$wed',FRI='$fri' WHERE LAST_NAME='$LastName'";
            mysqli_query($connection, $query);
        }
        elseif ($today=="Sat")
        {
            $query = "UPDATE players SET MON_PRI='$monpri',MON_ALT='$monalt',WED='$wed',FRI='$fri' WHERE LAST_NAME='$LastName'";
            mysqli_query($connection, $query);
        }
        elseif (($today=="Mon")||($today=="Sun"))
        {
            $query = "UPDATE players SET WED='$wed',FRI='$fri' WHERE LAST_NAME='$LastName'";
            mysqli_query($connection, $query);
        }
        elseif (($today=="Tue")||($today=="Wed"))
        {
            $query = "UPDATE players SET FRI='$fri' WHERE LAST_NAME='$LastName'";
            mysqli_query($connection, $query);
        }
    }
}

以上是更新数据库的函数的一段

有关如何在用户单击按钮后表格更新以提供已进行更改的反馈的任何帮助吗?

干杯!

最佳答案

很容易做到这一点。

您可以使用 header 刷新功能,它将为您修复重定向属性。使用它时,必须考虑两个基本事项;它被正确地放置在页面中,并且正确的参数被传递到其中,其中包括我们在它最终刷新到新位置之前应该等待多长时间。

将 header 刷新放在 PHP 提交代码中满足逻辑的位置下方,或者最好放在 PHP 代码中输出任何内容之前。它必须放在任何 <html> 之前和<!doctype>标签。

对于您自己的情况,尝试这样的事情,

   if (($monpri =="NO") || ($monalt=="NO"))
   {       
       $LastName=$_SESSION['LAST_NAME'];       

       if (($today=="Fri") && ($hd_flag=="yes"))
    {   
        //Friday after the cron runs
        $query = "UPDATE players SET MON_PRI='$monpri',MON_ALT='$monalt',WED='$wed',FRI='$fri' WHERE LAST_NAME='$LastName'";
        mysqli_query($connection, $query);
    }
    elseif ($today=="Sat")
    {
        $query = "UPDATE players SET MON_PRI='$monpri',MON_ALT='$monalt',WED='$wed',FRI='$fri' WHERE LAST_NAME='$LastName'";
        mysqli_query($connection, $query);
    }
    elseif (($today=="Mon")||($today=="Sun"))
    {
        $query = "UPDATE players SET WED='$wed',FRI='$fri' WHERE LAST_NAME='$LastName'";
        mysqli_query($connection, $query);
    }
    elseif (($today=="Tue")||($today=="Wed"))
    {
        $query = "UPDATE players SET FRI='$fri' WHERE LAST_NAME='$LastName'";
        mysqli_query($connection, $query);
    }
 header("refresh:3; url=mywebpage.php?action=something&monpri=$monpri");
}

如果您需要的话,请在那里使用刷新。

此后,您尝试检查网页上是否设置了某些内容,如果设置了,则显示相应更新的数据库。像这样做;

<?php
if(isset($_REQUEST['action']) && $_REQUEST['monpri']="NO") {echo "Database updated accordingly";}?>

关于php - PHP发布更新页面后需要刷新/重定向页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531445/

相关文章:

mysql - 使用 Hibernate 将 Spring Boot 与 Mysql 集成

php - 通过查询或脚本在 mysql 表中插入 rownums

javascript - 获取动态输入区jquery中的post数组插入批量codeigniter

PHP SOAP 请求不适用于 WSDL

php - INSERT INTO 无法正常工作 MySQL

mysql - 仅从 MySQL 中保存的用户代理检测移动设备

php - Laravel 将附加参数传递给 Controller

html - 容器外的文本中心

jquery - simplebar 滚动删除溢出隐藏选项

html - Angular 8显示图像src存储为变量中的ng模型