猿问

php+html+jquery混编问题(已附代码),请指点,谢谢,$flag = false怎么改变?

问题目的是实现加密内容,然后通过验证密码显示加密内容。
当$navinfor['keyname']设置了密码,则加密内容,且显示验证窗口,验证密码才显示被加密内容,并关闭验证窗口。
反之$navinfor['keyname']没有密码(为空时)则不加密内容。

$navinfor['keyname']是系统自定义变量,对应是<input type="text" id="keyname">

现在的问题是jquery验证后怎么改变$flag = false??
以下是主要代码

<?php
$okey = $navinfor['keyname'];
if ($okey == "") {//是否有密码
} else {
    $flag = false;
}
?>
<?php if ($flag) { ?>
<div><!-- 有密码则显示验证窗口 -->
    <input type="text" id="keyname">
    <button id="gopass">
        验证密码
    </button>
    <span id="texts">
    </span>
</div>
<script>
    $('#gopass').click(function() {
        var password = $('#keyname').val();
        if (password == '') {
            $('#texts').html('密码不能为空!');
            return false;
        }
        if (password == password) {
            $('#texts').html('密码正确');//密码正确则显示加密内容并关闭验证窗口
        } else {
            $('#texts').html('密码错误');
        }
    });
</script>
        <?php
} else { ?>
<div><!-- 这里文章内容 如果有密码就加密隐藏这里,没有密码就直接显示-->
<p>
    这里是文章主题内容
</p>
</div>
<?php } ?>
临摹微笑
浏览 524回答 3
3回答

慕桂英4014372

问题已经解决。非常感谢指点,因为内容也是变量,未加密和加密后我在<?php echo 输出内容变量就好了。谢谢修改后是:$('.div1').html('<?php echo $*** ?>'); 谢谢,但是又有个疑问,我在<p>这里是文章主题内容</p>加了层<div id="div2">, 然后$('.div1').html($('#div2')); 为什么空白一片??没有替换输出id#div2这块,我想输出#div2这块层区域 使用replaceAll也是没有效果。

扬帆大鱼

补充下,php部分语法错了。这种php流程控制里穿插HTML的应该这么写: <?php if ($flag): ?> <!-- 写你的HTML代码 --> <?php else: ?> <!-- 另一堆HTML代码 --> <?php endif; ?> 要用冒号而不要扯断大括号,具体的去看下流程控制的替代语法。
随时随地看视频慕课网APP
我要回答