在同一个 php 文件中提交表单时如何在选项卡之间切换?
How to switch between tab when form submitting in same php file?
我的页面有两个选项卡面板。一个是导入选项卡,另一个是编辑选项卡。在导入选项卡中,我有一个有多行的 table,每行都有编辑和删除按钮。当我单击编辑按钮时,我想显示编辑选项卡,其中包含来自导入选项卡的表单提交数据。但是我用表单提交制作了这两个按钮(edit/delete)。所以,问题是我无法进入编辑选项卡,因为当我单击编辑按钮时表单会重新加载。
<ul class="tab_bar">
<li id="import_tab" onClick="switchImport()">Import File</li>
<li id="edit_tab" onClick="switchEdit()">Edit Questions</li>
</ul>
<div class="panel" id="import_panel">
<?php
$row_no = 0;
echo "<tbody>";
while($q_row = mysql_fetch_array($quest_query)) {
echo "<tr>";
echo "<td id='tbl_no'>".++$row_no."</td>";
echo "<td id='tbl_quest'>".$q_row['question']."</td>";
echo "<td id='tbl_act'>
<form id=\"edit_form\" method=\"post\">
<input type=\"hidden\" name=\"q_id\" value=\" ".$q_row['id']. " \" />
<input type=\"hidden\" name=\"q_row_no\" value=\" ".$row_no." \" />
<input type=\"submit\" id=\"btn_edit\" name=\"Edit\" value=\"Edit\"> / <input type=\"submit\" id=\"btn_delete\" name=\"Delete\" value=\"Delete\">
</form>
</td>";
echo "</tr>";
}
echo "</tbody>";
?>
</div><!-- import panel end -->
<div class="panel" id="edit_panel">
#I want to show this tab panel when I click edit from import tab
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#import_table").DataTable();
$("#edit_form").submit(function(e){
$("#edit_tab").trigger("click");
});
});
function get(obj) {
return document.getElementById(obj);
}
function switchImport() {
get("import_tab").style.background = "#8CB3E3";
get("edit_tab").style.background = "#fff";
get("import_panel").style.display = "block";
get("edit_panel").style.display = "none";
}
function switchEdit() {
get("import_tab").style.background = "#fff";
get("edit_tab").style.background = "#8CB3E3";
get("import_panel").style.display = "none";
get("edit_panel").style.display = "block";
}
</script>
我已经尝试使用触发器,但它不起作用。
$("#edit_form").submit(function(e){
$("#edit_tab").trigger("click");
});
我可以使用 ajax 执行该操作吗?请给我建议。
$("#edit_form").submit(function(e){
// some actions you want to do
// ......
return false; // prevent the default submit event
// e.preventDefault() // or this approach, it also works
});
现在,我可以解决问题了。在编辑面板中,我们可以简单地设置 css 这样的样式
<div class="panel" id="edit_panel">
<style type="text/css">
#import_tab{background:#fff;}
#edit_tab{background:#8CB3E3;}
#import_panel{display:none;}
#edit_panel{display:block}
</style>
#other php code
</div>
所以现在,当我们从导入选项卡中单击编辑按钮时,我们可以进入编辑面板。
我的页面有两个选项卡面板。一个是导入选项卡,另一个是编辑选项卡。在导入选项卡中,我有一个有多行的 table,每行都有编辑和删除按钮。当我单击编辑按钮时,我想显示编辑选项卡,其中包含来自导入选项卡的表单提交数据。但是我用表单提交制作了这两个按钮(edit/delete)。所以,问题是我无法进入编辑选项卡,因为当我单击编辑按钮时表单会重新加载。
<ul class="tab_bar">
<li id="import_tab" onClick="switchImport()">Import File</li>
<li id="edit_tab" onClick="switchEdit()">Edit Questions</li>
</ul>
<div class="panel" id="import_panel">
<?php
$row_no = 0;
echo "<tbody>";
while($q_row = mysql_fetch_array($quest_query)) {
echo "<tr>";
echo "<td id='tbl_no'>".++$row_no."</td>";
echo "<td id='tbl_quest'>".$q_row['question']."</td>";
echo "<td id='tbl_act'>
<form id=\"edit_form\" method=\"post\">
<input type=\"hidden\" name=\"q_id\" value=\" ".$q_row['id']. " \" />
<input type=\"hidden\" name=\"q_row_no\" value=\" ".$row_no." \" />
<input type=\"submit\" id=\"btn_edit\" name=\"Edit\" value=\"Edit\"> / <input type=\"submit\" id=\"btn_delete\" name=\"Delete\" value=\"Delete\">
</form>
</td>";
echo "</tr>";
}
echo "</tbody>";
?>
</div><!-- import panel end -->
<div class="panel" id="edit_panel">
#I want to show this tab panel when I click edit from import tab
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#import_table").DataTable();
$("#edit_form").submit(function(e){
$("#edit_tab").trigger("click");
});
});
function get(obj) {
return document.getElementById(obj);
}
function switchImport() {
get("import_tab").style.background = "#8CB3E3";
get("edit_tab").style.background = "#fff";
get("import_panel").style.display = "block";
get("edit_panel").style.display = "none";
}
function switchEdit() {
get("import_tab").style.background = "#fff";
get("edit_tab").style.background = "#8CB3E3";
get("import_panel").style.display = "none";
get("edit_panel").style.display = "block";
}
</script>
我已经尝试使用触发器,但它不起作用。
$("#edit_form").submit(function(e){
$("#edit_tab").trigger("click");
});
我可以使用 ajax 执行该操作吗?请给我建议。
$("#edit_form").submit(function(e){
// some actions you want to do
// ......
return false; // prevent the default submit event
// e.preventDefault() // or this approach, it also works
});
现在,我可以解决问题了。在编辑面板中,我们可以简单地设置 css 这样的样式
<div class="panel" id="edit_panel">
<style type="text/css">
#import_tab{background:#fff;}
#edit_tab{background:#8CB3E3;}
#import_panel{display:none;}
#edit_panel{display:block}
</style>
#other php code
</div>
所以现在,当我们从导入选项卡中单击编辑按钮时,我们可以进入编辑面板。