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