如何更改PHP回显中元素的可见性?

时间:2019-10-23 20:26:37

标签: javascript php html css

我正在创建一个页面,该页面具有多种形式,这些形式被隐藏,然后从选择中选择该特定功能时将显示这些形式。我需要弄清楚的是,在用户提交后如何保持特定的表格显示。

if(isset($_POST['submit'])){
    echo "<script>document.getElementById('funcDisp').display='block' </script>";
    if($_POST['function'] == 'nameFunc') {
        $fname = $_POST['fname'];
        $lname = $_POST['lname'];
        $output = "Hi $fname $lname, welcome to my PHP challenge";
    }
}

这是一个示例,当选择第一个功能时会发生什么,但是我无法获得带有脚本标签的回声来对我一生有效。

<!DOCTYPE html>
  <?php
    if(isset($_POST['submit'])){            
        if($_POST['function'] == 'nameFunc'){
           $fname = $_POST['fname'];
           $lname = $_POST['lname'];
           $output = "Hi $fname $lname, welcome to my PHP challenge";
        }
    }
  ?>
<html>
    <head>
        <title></title>
        <link rel="stylesheet" type="text/css" href="bebk9hPHP.css">
        <script src="jquery-2.1.4.min.js"></script>        
    </head>
    <body>
        <div class="contentWrapper">
            <h1 id="header">PHP Sample Project</h1>
            <h3 id = "sText">Form Selection</h3>
            <div class="custom-select">
                <select id="dropdown">
                    <option selected disabled hidden>Select a function</option>
                    <option value="1">Function 1</option>
                    <option value="2">Function 2</option>
                    <option value="3">Function 3</option>
                    <option value="4">Function 4</option>
                </select>
            </div>
            <div class="funcDisplay" id="funcDisp">
                   <form action="bebk9hPHP.php" method="post">
                        <input type="text" name="fname" class="name" id="fieldOne">
                        <input type="text" name="lname" class="name" id="fieldTwo">
                        <input type="text" name="function" value="nameFunc" id="hidField">

                        <div class="submits">
                            <input type="submit" value="Submit" class="clear nsubmit" name="submit">
                            <input type="button" value="Clear" class="clear nclear">
                       </div>
                    </form>
               <?php 
                echo "<script>document.getElementById('funcDisp').display='block';</script>";
                echo "<h2> $output </h2>";
                ?>
            </div>
        </div>
     <script>
        $("#hidField").hide();
        $(".funcDisplay").hide();
         $("#dropdown").change(function(){
             if($("#dropdown :selected").val() == 1) {
                $(".funcDisplay").show();   
             }               
         }) 
    </script>
    </body>
</html>

这是我所有的代码。

1 个答案:

答案 0 :(得分:2)

输入:

if(isset($_POST['submit'])){
    echo "<script>document.getElementById('funcDisp').display='block' </script>";
}

在文档加载或就绪函数中,用PHP标签包裹。由于onload或ready函数已经设置为javascript,因此从<script></script>中丢失了echo()标签。

没有显示您具有onload或ready函数,因此创建一个或另一个。

尽管不是首选方法,但可能会这样写成与<body>标记相关联的onload:

<head>
...
<script>
    function onloaders() {
        <?php
            if(isset($_POST['submit'])) {
            ?>
                document.getElementById('funcDisp').display='block';
            <?php
            }
        ?>
    }
</script>
</head>

<body onload="onloaders()">

但是具有相同内部结构的jQuery文档就绪函数将是首选方法。无论哪种都可以。