我对此代码有疑问:
<?php $nb = 10; ?>
<script>
if(window.innerHeight+1 == screen.height)
{
document.write("<?php $nb = 10; ?>");
alert("1");
alert(window.innerHeight +1+ " " +screen.height+ " 1");
}else{
document.write("<?php $nb = 8; ?>");
alert("2");
alert(window.innerHeight +1+ " " +screen.height + " 2");
}
<script>
<?php
$blink = "";
$i = 0;
for($i=0;$i<$nb;$i++)
{
if($_SESSION['Collection'][$i]->getUrgence() == "FORTE")
{
$blink = " class=\"Blink\"";
}
elseif($_SESSION['Collection'][$i]->getUrgence() == "MOYENNE")
{
$blink = "";
}
echo '<tr>';
echo '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getNumDossier().'</td>';
echo '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getNomTicket().'</td>';
echo '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getService().'</td>';
echo '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getImpact().'</td>';
echo '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getUrgence().'</td>';
echo '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getDateOuverture().'</td>';
echo '</tr>';
}
?>
事实上,我想检测浏览器是否处于全屏状态,如果是,则将变量设置为10,否则将其设置为8。在我的php代码中使用此变量显示多个值之后。 / p>
如果'if'为true,则打印出alert(“ 1”),但是$ nb = 8,这真的很奇怪吗?
谢谢您的阅读!
答案 0 :(得分:0)
我认为您有两个相互竞争的想法。正如@Titus在他的评论中指出的那样,所有PHP代码都首先被编译。因此,首先将$ nb设置为10,然后再设置为8。
一旦生成HTML输出,$ nb在HTML中使用的任何地方都是8。您需要在PHP中使用if / else或使用单独的变量。
<?php $nb = 10; ?>
<script>
if(window.innerHeight+1 == screen.height)
{
document.write("8");
alert("1");
alert(window.innerHeight +1+ " " +screen.height+ " 1");
}else{
document.write("8");
alert("2");
alert(window.innerHeight +1+ " " +screen.height + " 2");
}
您应该进入开发人员工具并检查HTML,以查看在客户端生成的值。 PHP =服务器端代码,JS =客户端代码(因为您未使用节点)。
您对代码段的意图不明确,因此我无法给您提供可行的示例。