我有一个包含表格的div,我将可见性设置为hidden。我的表单中也有一个按钮,我想在PHP部分中按下按钮而不是javascript或jquery时将div的可见性设置为可见一部分。
<div id="infoPart" style="visibility: hidden"></div>
<?php
//here I want to set the visibilty of div to visible and do some other tasks
?>
答案 0 :(得分:1)
你正在混淆概念。
PHP代码在服务器上执行。如果你想通过php隐藏div,则不需要使用visibility:hidden
- 简单地将整个<div>
放在php if
块中,如果它应该被隐藏则跳过它。
要通过php显示它,您必须从服务器重新加载整个页面。确实可能,这就是asp.net webforms等Web框架的工作方式。
如果您想获得良好的用户体验,您一定要使用一种解决方案来处理浏览器中的隐藏和显示,而无需从服务器重新加载页面。 PHP代码无法在浏览器中运行,因此在这种情况下您必须使用JavaScript。 jQuery是一个 JavaScript库,可以更容易地操作DOM。
答案 1 :(得分:0)
PHP不能在不刷新页面的情况下修改网页的来源。 这就是我们拥有JavaScript的原因。
看来你的行为是错误的,如果你有理由,请解释为什么你认为你需要这样做
答案 2 :(得分:0)
您可以打印覆盖元素样式的样式标记。
以下代码将使div #infoPart
可见
<div id="infoPart" style="visibility: hidden"></div>
<?php
//here I want to set the visibilty of div to visible and do some other tasks
echo '<style>#infoPart{visibility: visible !important;}</style>';
?>
请注意,我们正在使用!important
,这意味着您无法在以后更改可见性。
答案 3 :(得分:0)
你提到你已经在使用javascript,所以你可以这样做:
<?php
echo "<script> document.getElementById('infoPart').style.visibility='hidden'; </script>";
?>
答案 4 :(得分:0)
如果要对PHP变量进行任何更改,则必须重新加载页面。
/*or any logic from button click*/
$flagToShow = (!isEmpty($_REQUEST['variable'])) ? $_REQUEST['variable']: "hidden";
echo "<div id=\"infoPart\" style=\"visibility: {$flagToShow}\"></div>";
重新加载是必需的,因为PHP语句适用于服务器端。 Jquery和其他javascript工作没有重新加载,因为它在客户端工作。