当我单击同一 php 页面中的按钮时,我想显示一个数据表。该按钮用于具有其他输入(例如某些文本)的表单中。数据表默认隐藏。它从表单中获取值,然后在数据库中进行查询并在其中显示它们。
如何实现显示/隐藏的功能?
你有什么解决办法?
谢谢。
这是一个简单的 ajax 问题,您可以使用任何流行的 java 脚本库来实现此功能来执行 ajax 调用和显示/隐藏表。例如,您可以使用 jquery 的 ajax 功能从服务器获取数据,然后使用 jquery 的内置效果来显示包含在 div 中的表。例如,要显示 div 'mydiv' 中
$("#mydiv").show();
的内容,只需写 和隐藏内容,写$("#mydiv").hide();
如果您可以使用 Javascript,请为您的table
标签添加一个id
属性。然后,onclick
在按钮上设置一个事件,将 的 CSS 更改table
为display:none
。更改按钮的 Javascript 以便下次单击它时,它会将table
CSS 切换为display:table
. 您还可以使用 Javascript 库,例如Prototype来执行此操作。
<table id="myTable">
</table>
<input id="toggleButton" type="button" onclick="hideTable(true);" value="Toggle Table" />
Javascript 可能是:
function toggleDisplay(var hide) {
if (hide) {
document.getElementById('myTable').style.display = "none";
document.getElementById('toggleButton').onclick = hideTable(false);
} else {
document.getElementById('myTable').style.display = "table";
document.getElementById('toggleButton').onclick = hideTable(true);
}
}
对 Javascript 持保留态度;好久没写了
如果您不想使用 Javascript,则让按钮提交常规 HTML 表单。以表单的形式传递一些输入名称,例如hide_table
值为true
. 在服务器上,如果$_POST['hide_table'] == "true"
,则不允许将表格作为 HTML 输出到页面。此外,切换表单,以便单击按钮将提交hide_table
值为false
.
<form method="post" action="the_same_page.php">
<input type="hidden" name="hide_table" value="<?php echo $_POST['hide_table'] == "true" ?>" />
<input type="button" value="Toggle Table" />
</form>
<?php if ($_POST['hide_table'] != "true") { ?>
<table>
</table>
<?php } ?>
如果您想使用 AJAX 仅在用户决定显示表格内容时加载它,最好让它优雅地降级。如果用户没有启用 Javascript,表单实际上应该提交到服务器并重新加载页面,切换表格显示。但是,如果用户确实启用了 Javascript,则可以进行 AJAX 调用,加载表格并就地显示它。
假设您想要做这个客户端(即所有数据在页面加载时发送到客户端),那么您需要做的就是:(为简洁起见,使用原型完成)
...
<input type="button" id="showTableBtn" value="Show Table">
<table id="dataTable">
...
</table>
<script type="text/javascript">
<!--
Event.observe($("showTableBtn"), "click", toggleTable);
function toggleTable() {
if ($("showTableBtn").value == "Show Table") {
$("dataTable").show();
$("showTableBtn").value = "Hide Table";
} else {
$("dataTable").hide();
$("showTableBtn").value = "Show Table");
}
}
//-->
</script>
...