繁体   English   中英

PHP:不更改变量的值

[英]PHP: Not changing the value of a variable

当用户单击“取消” $IsCanceled = "yes"的值$IsCanceled = "yes"时,在确认消息中出现问题,然后当我单击“确定$IsCanceled = "yes"时,$$ IsCanceled的值=“否”。

问题是,当我单击“确定”时,$ IsCanceled的值仍然是...

<?php
 else { ?>
        <script>
        var myVar = "<?php echo $bldg[$i]; ?> station is already full. Do you want to save the other networks?";
        if (confirm(myVar)) {
        <?php $IsCanceled = "no";?>
    } else {
        <?php
        $IsCanceled = "yes";
        ?>          
    }
        </script>
        <?php
    }
//and so on...

我已经追踪了所有内容,但其价值仍然是“是”。

谢谢

php是服务器端脚本,没有页面刷新就无法分配。

使用javascript(客户端脚本)变量分配yes或no

else
{ 
?>
<script>
var myVar = "<?php echo $bldg[$i]; ?> station is already full. Do you want to save the other networks?";
if (confirm(myVar)) {
    IsCanceled = "no";
} else {
    IsCanceled = "yes";        
}
alert(IsCanceled);
</script>
<?php
}

如果要在客户端执行一些逻辑,则需要使用不带PHP的JS。 并且,如果需要在逻辑服务器端执行操作,则需要对服务器进行POST或GET。

只需在加载页面后立即将其作为源打开页面,您就会看到,放置PHP条件的地方一无是处。

这是因为PHP已经完成了所有工作。 检查$ IsCanceled并向您显示页面。

还请注意,如果需要检查而不是分配,则需要使用双等号而不是一个等号,例如if($IsCanceled == 'no')将检查变量IsCanceled等于字符串'no' 但是if($IsCanceled = 'no')告诉php将字符串'no'分配给变量IsCanceled它将始终为TRUE,因为它是赋值的,赋值的结果为TRUE

PHP和Javascript。
两种完全不同的语言用于各种不同的任务。

上面编写的内容尝试将两种语言混合使用,如果您在任何其他环境中进行编写,您甚至都不会考虑这样做。 您编写的上述脚本将在服务器上运行PHP ,并生成输出发送到浏览器。

在您的情况下,它将类似于:

<script>
var myVar = "i station is already full. Do you want to save the other networks?";
if (confirm(myVar)) {
} else {
}
</script>

这就是当前代码的确切输出。 如果要导航用户以“保存到其他网络”,则必须创建一个隐藏的HTML form ,该form具有<input type="hidden" ..可以容纳所需的答案。 然后,使用Javascript,您可以显示确认对话框并填充HTML表单,然后提交并使用PHP再次处理。

想起来像网球。 在将球发送给对手之后,您无法更改击球的方式。 在这种情况下,您可以对两侧进行编程,并使它们相应地处理网球。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM