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 } ?>
阅读 3k
3 个回答

不太清楚你为什么要改变$flag的值,你的代码微调了下,是满足你最初的需求的

<?php
header('content-type:text/html;charset=utf8');
//$okey = $navinfor['keyname'];
$okey = 'abc123';
?>
<?php if ($okey) { ?>
    <div class="div1"><!-- 有密码则显示验证窗口 -->
        <input type="text" id="keyname">
        <button id="gopass">
            验证密码
        </button>
        <span id="texts">
    </span>
    </div>
    <script src="jquery.min.js"></script>
    <script>
        $('#gopass').click(function() {
            var password = $('#keyname').val(),
                pwd = '<?php echo $okey ?>';
            if (password == '') {
                $('#texts').html('密码不能为空!');
                return false;
            }
            if (password == pwd) {
                $('#texts').html('密码正确');//密码正确则显示加密内容并关闭验证窗口
                setTimeout(function () {
                    $('.div1').html('<p>这里是文章主题内容</p>');

                },2000);
            } else {
                $('#texts').html('密码错误');
            }
        });
    </script>
    <?php
} else { ?>
    <div><!-- 这里文章内容 如果有密码就加密隐藏这里,没有密码就直接显示-->
        <p>
            这里是文章主题内容
        </p>
    </div>
<?php } ?>
问题已经解决。非常感谢指点,因为内容也是变量,未加密和加密后我在<?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; ?>

要用冒号而不要扯断大括号,具体的去看下流程控制的替代语法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题