鍍金池/ 問答/PHP  HTML/ php+html+jquery混編問題(已附代碼),請指點,謝謝,$flag =

php+html+jquery混編問題(已附代碼),請指點,謝謝,$flag = false怎么改變?

問題目的是實現(xiàn)加密內(nèi)容,然后通過驗證密碼顯示加密內(nèi)容。
當$navinfor['keyname']設置了密碼,則加密內(nèi)容,且顯示驗證窗口,驗證密碼才顯示被加密內(nèi)容,并關閉驗證窗口。
反之$navinfor['keyname']沒有密碼(為空時)則不加密內(nèi)容。

$navinfor['keyname']是系統(tǒng)自定義變量,對應是<input type="text" id="keyname">

現(xiàn)在的問題是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('密碼正確');//密碼正確則顯示加密內(nèi)容并關閉驗證窗口
        } else {
            $('#texts').html('密碼錯誤');
        }
    });
</script>
        <?php
} else { ?>
<div><!-- 這里文章內(nèi)容 如果有密碼就加密隱藏這里,沒有密碼就直接顯示-->
<p>
    這里是文章主題內(nèi)容
</p>
</div>
<?php } ?>
回答
編輯回答
巴扎嘿
問題已經(jīng)解決。非常感謝指點,因為內(nèi)容也是變量,未加密和加密后我在<?php echo 輸出內(nèi)容變量就好了。謝謝
修改后是:$('.div1').html('<?php echo $*** ?>');

謝謝,但是又有個疑問,我在<p>這里是文章主題內(nèi)容</p>加了層<div id="div2">,

然后$('.div1').html($('#div2'));

為什么空白一片??沒有替換輸出id#div2這塊,我想輸出#div2這塊層區(qū)域

使用replaceAll也是沒有效果。

2018年6月19日 17:23
編輯回答
故林

不太清楚你為什么要改變$flag的值,你的代碼微調(diào)了下,是滿足你最初的需求的

<?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('密碼正確');//密碼正確則顯示加密內(nèi)容并關閉驗證窗口
                setTimeout(function () {
                    $('.div1').html('<p>這里是文章主題內(nèi)容</p>');

                },2000);
            } else {
                $('#texts').html('密碼錯誤');
            }
        });
    </script>
    <?php
} else { ?>
    <div><!-- 這里文章內(nèi)容 如果有密碼就加密隱藏這里,沒有密碼就直接顯示-->
        <p>
            這里是文章主題內(nèi)容
        </p>
    </div>
<?php } ?>
2017年4月19日 16:50
編輯回答
萢萢糖

補充下,php部分語法錯了。這種php流程控制里穿插HTML的應該這么寫:

<?php if ($flag): ?>
<!-- 寫你的HTML代碼 -->
<?php else: ?>
<!-- 另一堆HTML代碼 -->
<?php endif; ?>

要用冒號而不要扯斷大括號,具體的去看下流程控制的替代語法

2018年4月18日 21:14