Php Can';在表单提交后,不要重定向到另一页

Php Can';在表单提交后,不要重定向到另一页,php,html,forms,Php,Html,Forms,我已经创建了一个表单,当表单提交时,它会获取所选单选按钮的值并存储在db中,然后我尝试重定向到另一个页面,但结果是,即使db中的值发生更改,如果我转到另一个页面并返回单选按钮页面,当前页面也会刷新而不更新单选按钮值,值是更新。如何重定向到另一页 这是我的代码: <?php foreach( $users as $user ): ?> <tr> <td><?php echo $user

我已经创建了一个表单,当表单提交时,它会获取所选单选按钮的值并存储在db中,然后我尝试重定向到另一个页面,但结果是,即使db中的值发生更改,如果我转到另一个页面并返回单选按钮页面,当前页面也会刷新而不更新单选按钮值,值是更新。如何重定向到另一页

这是我的代码:

<?php foreach( $users as $user ): ?>
                <tr>
                    <td><?php echo $user["username"]; ?></td>
                    <td><?php echo $user["role"]; ?></td>
                    <td class="right"><a href="delete_permission.php?idTratta=<?php echo $idTratta; ?>&user=<?php echo $user["username"]; ?>">Elimina permessi utente</a></td>
                    <td class="right"><form action="" method="post">  <label>
    <input type="radio" name="<?php echo $user["username"]; ?>"  value="1" <?php if ($user["role"] == 'configuratore') echo 'checked="checked"'; ?>" />C</label>
  <label>
    <input type="radio" name="<?php echo $user["username"]; ?>"  value="2"<?php if ($user["role"] == 'visualizzatore avanzato') echo 'checked="checked"'; ?>" />VA</label>
  <label>
    <input type="radio" name="<?php echo $user["username"]; ?>"   value="3"<?php if ($user["role"] == 'visualizzatore') echo 'checked="checked"'; ?>" />V </label><input type= "submit" name="sub_<?php echo $user["username"]; ?>"value="Cambia"/></form></td>
                <?php
                   $sub='sub_';

                   if($_POST[$sub.''.$user["username"]]){
                   $permission=$_POST[$user["username"]];
                   $SimpleUsers->updateUserPermission($user["username"],$idTratta,$permission);
                   header('location: tratte.php' );
                   exit();
                  }
                 ?>

                </tr>
                <?php endforeach; ?>

PHP的
头文件(“Location:FILE_NAME.PHP”)
如果脚本中有任何输出,即使只有一个空格,也无法工作

在您的情况下,您正在打印HTML(输出),因此重定向不起作用

解决方案:

1) 在页面的最开头添加
ob_start()
。这将把您的输出存储到缓冲区,并将发生重定向

2) 使用Javascript重定向。无论您是否在浏览器上输出内容,Javascript重定向都将发生

代码:

$SimpleUsers->updateUserPermission($user[“username”],$idTratta,$permission);
echo“window.location.href='tratte.php';”;
//标题('location:tratte.php');
退出();

在您编写的表单中,如在此处添加完整代码,我看不到代码中的标记。@KaushaMehta我可以看到它。。。第六行…@stwalkerster天哪,对不起!您没有在表单操作中写入文件名,这意味着在提交时它会重定向到当前页面。如果要将其重定向到另一个页面,则必须写入正在运行的文件名。@KaushaMehta询问者正在执行header()调用,因此我怀疑其意图是使用Post重定向Get模式,从用户体验的角度来看,这更为好用。
$SimpleUsers->updateUserPermission($user["username"],$idTratta,$permission);
echo "<script>window.location.href='tratte.php';</script>";
//header('location: tratte.php' );
exit();