php - 使用标头(“位置:xxx.php”);将控制权移动/保留到网页上的选项卡
问题描述
我有一个选项卡式网页,可以使用这种选项卡结构执行数据库 CRUD 操作。
<div class="tab">
<button class="tablinks" onclick="openCity(event, 'tab1')">tab1</button>
<button class="tablinks" onclick="openCity(event, 'tab2')">tab2</button>
<button class="tablinks" onclick="openCity(event, 'tab3')">tab3</button>
<button class="tablinks" onclick="openCity(event, 'tab4')">tab4</button>
</div>
<div id="tab1" class="tabcontent">
</div>
<div id="tab2" class="tabcontent">
</div>
<div id="tab3" class="tabcontent">
<div class="tab">
<button class="tablinks" onclick="openCity(event, 'tab5')">Delete Record</button>
DELETE QUERY;
echo'Record deleted successfully';
echo'Record not deleted successfully';
<button class="tablinks" onclick="openCity(event, 'tab6')">View Record</button> //error
</div>
<div id="tab5" class="tabcontent">
<!-- option 1 -->
<div id="tab6" class="tabcontent">
</div>
</div>
问题是当我删除一条记录时,删除后控件会转到带有所有选项卡的主页。我想要的是控件返回/保留删除选项卡,以便操作可以继续。
我的问题是;header ("locattion: xxx.php");
一旦删除查询运行并显示成功/失败消息或如何执行此操作,是否可以使用 标签移动/保持删除选项卡打开?
这是删除记录和控件转到级别选项卡的实际代码。
<div class="col-sm-6" style="background-color:lavenderblush;">
<h6> Fields </h6>
<form action="" method="post" class="needs-validation" novalidate>
<div class="row" style="background-color:lavender;">
<div class="col mb-4">
<label for="validationCustom01">Field ID</label>
<input type="number" class="form-control" name="field_id" id="field_id" placeholder="insert Field id" value="" required>
</div>
</div>
<button class="btn btn-primary btn-sm" name="submit111" type="submit">Delete Record</button>
</form>
<div id="search" class="col mb-4">
<?php
if(isset($_POST["submit111"])){
$field_id = $_POST["field_id"];
try {
$stmt = $conn->prepare("Delete FROM fields where field_id = $field_id");
if ($stmt->execute()== TRUE) {
echo "<script type= 'text/javascript'>alert('Record deleted Successfully');</script>";
} else { echo "<script type= 'text/javascript'>alert('Record not deleted Successfully');</script>";}
}
catch(PDOException $e) {
// echo "Error: " . $e->getMessage();
exit('<b>Catched exception at line '. $e->getLine() .' (code : '. $e->getCode() .') :</b> '. $e->getMessage());
}
}
?>
</div>
</div>
编辑
JS 函数以打开选项卡:
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
}
解决方案
问题并不完整,但这一切都取决于您如何打开选项卡。
如果它是一个锚点,只需将锚点添加到您的标题功能中,例如
header("location: index.php#tab1");
或实现一个 get 参数,将活动 div(tab) 设置为活动。或者只是触发一个ajax请求并让它在后台完成,所以标签保持活动状态
推荐阅读
- javascript - 如何在更新面板中更新谷歌地图标记?
- java - 使用 Jmeter 发送 SNMP 陷阱
- informix - 如何在informix中获取表的块列表?
- junit - 将 Powermock 与 Mockito 集成 - java.lang.NoSuchMethodError
- c# - 将有关字段日期时间的前后图像设置为字段文本
- reporting-services - 如何在 SSRS“Code.SumLookup(LookupSet)”函数中使用连接命令?
- latex - 删除 epslatex/gnuplot 中不必要的边距
- gmail-api - 如何使用发送日期时间创建电子邮件(稍后发送/预定)
- r - 使用闪亮应用程序的 DT::datatable 的标题导出选项
- javascript - Angular - 将惰性样式包封装到组件