我有一个PHP Session变量,可以是0或1,这个JS函数:
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
我希望只有在PHP会话变量为0时打开页面才能自动运行此函数。
我如何以及在何处创建我的If语句?
答案 0 :(得分:1)
最简单的一个就是像任何普通的代码块一样处理它。在if语句中添加条件。
基本理念:
<!-- head -->
<?php if($_SESSION['whatever'] === 0): ?>
<script type="text/javascript">
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
toggle_visibility('body');
</script>
<?php endif; ?>
<!-- your HTML content, etc. -->
<!-- footer, etc. -->
如果$_SESSION['whatever']
不是 0
,则在加载完毕后,您将不会在页面中看到此JS代码块,因为请记住PHP先运行。
注意:不要忘记开始会话。
附加说明:当然,另一种方法是创建XMLHttpRequest。您需要另一个响应此请求的PHP脚本。只需回复json_encode
d回复即可。这个answer(香草)应该给出更好的说明。
答案 1 :(得分:0)
你可以让PHP生成JS代码,然后你会得到类似的东西
<script>
<?php
session_start();
if($_SESSION["name"]=="value"){
echo"document.getElementById('id').style.display='none';";
}
?>
</script>
答案 2 :(得分:0)
您可以使用以下技术:
<?php
if($_SESSION['shouldbezero'] === 0) {
echo '<script src="shouldbezero.js"></script>';
}
?>
仅当echo
的值等于$_SESSION['shouldbezero']
时才会运行0
语句,因此<script>
标记只会添加到您的HTML代码中具体情况。
如果您使用此技术,您还应创建一个名为shouldbezero.js
的文件,如果$_SESSION['shouldbezero']
的值等于{{1},该文件应包含您只想运行的所有JavaScript代码}。
如果您只想根据PHP代码中的某个值加载CSS,可以使用该CSS代码执行相同的操作。
例如,您可以在0
下方添加echo <link rel="stylesheet" type="text/css" href="shouldbezero.css">';
,如下面的代码示例所示:
echo '<script src="shouldbezero.js"></script>';
如果这样做,您还应该创建一个名为<?php
if($_SESSION['shouldbezero'] === 0) {
echo '<script src="shouldbezero.js"></script>';
echo '<link rel="stylesheet" type="text/css" href="shouldbezero.css">';
}
?>
的文件,如果shouldbezero.css
的值等于$_SESSION['shouldbezero']
,该文件应包含您只想处理的所有CSS代码
答案 3 :(得分:0)
define('PDF_TEMPLATE_PROD', '
<tr class="pdf_prod" id="{::prod_name}" nobr="true">
<td class="pdf_prod_desc">
<ul class="pdf_prod_ul">
<li><strong>{::txt_prod_price}</strong> {::prod_price}</li>
<li class="pdf_prod_bcode">{::prod_ean}</li>
</ul>
</td>
</tr>
');