Php 如果提交了第一个表单,则页面上的第二个表单不会刷新目标页面
我有一个页面,从数据库中检索培训广告列表,并显示在表中。和另一个页面,当点击培训名称时,显示有关培训的详细信息。详细信息页面还允许编辑和删除广告。编辑或删除广告时,页面将重定向到广告列表。问题是,如果我编辑了一个广告,而没有访问另一个页面,如果我在重定向到广告列表页面时删除了该广告,则删除的广告仍在列表中。但是如果我没有编辑就删除了广告,或者在编辑后访问了另一个页面,然后返回并删除了广告,一切都正常。抱歉问了这么长的问题。感谢您的任何帮助。 代码如下 广告列表页:Php 如果提交了第一个表单,则页面上的第二个表单不会刷新目标页面,php,forms,Php,Forms,我有一个页面,从数据库中检索培训广告列表,并显示在表中。和另一个页面,当点击培训名称时,显示有关培训的详细信息。详细信息页面还允许编辑和删除广告。编辑或删除广告时,页面将重定向到广告列表。问题是,如果我编辑了一个广告,而没有访问另一个页面,如果我在重定向到广告列表页面时删除了该广告,则删除的广告仍在列表中。但是如果我没有编辑就删除了广告,或者在编辑后访问了另一个页面,然后返回并删除了广告,一切都正常。抱歉问了这么长的问题。感谢您的任何帮助。 代码如下 广告列表页: $connect = mysq
$connect = mysqli_connect($host,$user,$password,$database) or die ("Couldn't connect database");
$sql = "SELECT * FROM ad WHERE trainer_id=$trainer_id ORDER BY id desc ";
$result = mysqli_query($connect,$sql) or die("Couldn't execute query.");
$count=mysqli_num_rows($result);
$totalPages=ceil($count/$result_per_page);
$sql = "SELECT * FROM ad WHERE trainer_id=$trainer_id ORDER BY id desc LIMIT $start, $result_per_page ";
$result = mysqli_query($connect,$sql) or die("Couldn't execute query.");
if($count!=0)
{
echo "<table cols='4' cellspacing='25'>";
echo "<th>Training Name</th>";
echo "<th>Trainer / Training Center</th>";
echo "<th>Training Dates</th>";
echo "<th>Registration Starts</th>";
echo "<th>Viewed</th>";
while($row=mysqli_fetch_assoc($result))
{
extract($row );
echo "<tr><td ><a href='personal_ad_details.php?id=$id'>$training_name</a></td>";
echo "<td >$trainer_name</td>";
echo "<td >$training_start - $training_end</td>";
echo "<td >$reg_start</td>";
echo "<td >$view</td></tr>";
}
echo "</table>";
广告详情页面编辑和删除:
$connect = mysqli_connect($host,$user,$password,$database) or die ("Couldn't connect database");
if(isset($_GET['id']) && !empty($_GET['id'])){
$currentID = $_GET['id'];
$sql = "SELECT * FROM ad WHERE id=$currentID";
$result = mysqli_query($connect,$sql) or die("Couldn't execute query.");
$row= mysqli_fetch_array($result);
extract($row);
echo "<div id='ad_header'>";
echo "<h2>
$training_name</h2>";
echo "<p>Trainer/Training Center:</p> $trainer_name ";
echo "<p>Training Date(s): </p>$training_start - $training_end";
echo "<p>Registration starts: </p>$reg_start";
echo "<p>Phone: </p>$mobile";
if($email!=''){echo "<p>Email: </p><a href='mailto:$email'>$email</a>";}
if($website!=''){echo "<p>Web Site: </p><a href='http://$website' target='_blank'>$website</a>";}
echo "</br>";
echo "</div>";
echo "<div id='ad_main'>";
echo "<p>Training details:</p> </br>"?> <form action="<?php echo htmlspecialchars('personal_ad_details.php')?><?php echo "?id=".$currentID?>" method="post"> <textarea style="position:relative; left:0%" rows="10" cols="25" name="Telim_Melumatlari" ><?php echo $training_details; ?></textarea>
<?php
echo "</div>";
}
?>
<input style="margin:10px" type="submit" name="update" value="UPDATE"></form>
<?php
if(isset($_POST['update']))
{
include('misc.inc');
$connect = mysqli_connect($host,$user,$password,$database)
or die ("Couldn't connect to database.");
$sql = "UPDATE ad SET training_details='$_POST[Telim_Melumatlari]' WHERE id=$currentID ";
mysqli_query($connect,$sql) or die("Couldn't execute query");
$url="personal_ad_list.php";
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
echo '</noscript>'; exit;
}
?>
<form action="<?php echo htmlspecialchars('personal_ad_details.php')?><?php echo "?id=".$currentID?>" onSubmit="return confirm('Are you sure you want to delete the Ad?');" method="post"><input style="margin:10px; background-color:red" type="submit" name="delete" value="DELETE AD"></form>
<?php
if(isset($_POST['delete']))
{
include('misc.inc');
$connect = mysqli_connect($host,$user,$password,$database)
or die ("Couldn't connect to database.");
$sql = "DELETE FROM ad WHERE id=$currentID ";
mysqli_query($connect,$sql) or die("Couldn't execute query");
$url="personal_ad_list.php";
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
echo '</noscript>'; exit;
}
?>
您应该检查表单操作url:
<form action="<?php echo htmlspecialchars('personal_ad_details.php')?><?php echo "?id=".$currentID?>" onSubmit="return confirm('Are you sure you want to delete the Ad?');" method="post">
到
注意:另一个好的做法是,您应该从页面开始提交流程代码:
<?php
$connect = mysqli_connect($host,$user,$password,$database) or die ("Couldn't connect database");
if(isset($_POST['delete']))
{
include('misc.inc');
$connect = mysqli_connect($host,$user,$password,$database)
or die ("Couldn't connect to database.");
$sql = "DELETE FROM ad WHERE id=$currentID ";
mysqli_query($connect,$sql) or die("Couldn't execute query");
$url="personal_ad_list.php";
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
echo '</noscript>'; exit;
}
if(isset($_POST['update']))
{
include('misc.inc');
$connect = mysqli_connect($host,$user,$password,$database)
or die ("Couldn't connect to database.");
$sql = "UPDATE ad SET training_details='$_POST[Telim_Melumatlari]' WHERE id=$currentID ";
mysqli_query($connect,$sql) or die("Couldn't execute query");
$url="personal_ad_list.php";
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
echo '</noscript>'; exit;
}
if(isset($_GET['id']) && !empty($_GET['id'])){
$currentID = $_GET['id'];
$sql = "SELECT * FROM ad WHERE id=$currentID";
$result = mysqli_query($connect,$sql) or die("Couldn't execute query.");
$row= mysqli_fetch_array($result);
extract($row);
echo "<div id='ad_header'>";
echo "<h2>
$training_name</h2>";
echo "<p>Trainer/Training Center:</p> $trainer_name ";
echo "<p>Training Date(s): </p>$training_start - $training_end";
echo "<p>Registration starts: </p>$reg_start";
echo "<p>Phone: </p>$mobile";
if($email!=''){echo "<p>Email: </p><a href='mailto:$email'>$email</a>";}
if($website!=''){echo "<p>Web Site: </p><a href='http://$website' target='_blank'>$website</a>";}
echo "</br>";
echo "</div>";
echo "<div id='ad_main'>";
echo "<p>Training details:</p> </br>"?> <form action="" method="post"> <textarea style="position:relative; left:0%" rows="10" cols="25" name="Telim_Melumatlari" ><?php echo $training_details; ?></textarea>
<?php
echo "</div>";
}
?>
<input style="margin:10px" type="submit" name="update" value="UPDATE"></form>
<form action="" onSubmit="return confirm('Are you sure you want to delete the Ad?');" method="post"><input style="margin:10px; background-color:red" type="submit" name="delete" value="DELETE AD"></form>
谢谢你的努力,但没有一个对我有用。当我更新信息并立即删除广告时,培训列表不会刷新您所说的刷新。您正在重定向该页面。如果不工作,则使用位置,并检查数据库您的查询是否工作正常是的,它将重定向到广告列表页面。查询也可以正常工作,因为在重定向到广告列表页面后,我访问了另一个页面并返回到广告列表页面,删除的广告不再出现在列表上尝试:header'Location:personal_ad_list.php';还添加headerCache控件:无缓存;HeaderFragma:无缓存;名单上page@DincaAdrian也许您对解决方案有一个想法:
<?php
$connect = mysqli_connect($host,$user,$password,$database) or die ("Couldn't connect database");
if(isset($_POST['delete']))
{
include('misc.inc');
$connect = mysqli_connect($host,$user,$password,$database)
or die ("Couldn't connect to database.");
$sql = "DELETE FROM ad WHERE id=$currentID ";
mysqli_query($connect,$sql) or die("Couldn't execute query");
$url="personal_ad_list.php";
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
echo '</noscript>'; exit;
}
if(isset($_POST['update']))
{
include('misc.inc');
$connect = mysqli_connect($host,$user,$password,$database)
or die ("Couldn't connect to database.");
$sql = "UPDATE ad SET training_details='$_POST[Telim_Melumatlari]' WHERE id=$currentID ";
mysqli_query($connect,$sql) or die("Couldn't execute query");
$url="personal_ad_list.php";
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
echo '</noscript>'; exit;
}
if(isset($_GET['id']) && !empty($_GET['id'])){
$currentID = $_GET['id'];
$sql = "SELECT * FROM ad WHERE id=$currentID";
$result = mysqli_query($connect,$sql) or die("Couldn't execute query.");
$row= mysqli_fetch_array($result);
extract($row);
echo "<div id='ad_header'>";
echo "<h2>
$training_name</h2>";
echo "<p>Trainer/Training Center:</p> $trainer_name ";
echo "<p>Training Date(s): </p>$training_start - $training_end";
echo "<p>Registration starts: </p>$reg_start";
echo "<p>Phone: </p>$mobile";
if($email!=''){echo "<p>Email: </p><a href='mailto:$email'>$email</a>";}
if($website!=''){echo "<p>Web Site: </p><a href='http://$website' target='_blank'>$website</a>";}
echo "</br>";
echo "</div>";
echo "<div id='ad_main'>";
echo "<p>Training details:</p> </br>"?> <form action="" method="post"> <textarea style="position:relative; left:0%" rows="10" cols="25" name="Telim_Melumatlari" ><?php echo $training_details; ?></textarea>
<?php
echo "</div>";
}
?>
<input style="margin:10px" type="submit" name="update" value="UPDATE"></form>
<form action="" onSubmit="return confirm('Are you sure you want to delete the Ad?');" method="post"><input style="margin:10px; background-color:red" type="submit" name="delete" value="DELETE AD"></form>