簡體   English   中英

如何更改 PHP 回聲中元素的可見性?

[英]How to change the visibility of an element inside a PHP echo?

我正在創建一個頁面,其中包含多個隱藏的 forms,然后在從 select 中選擇特定 function 時顯示。 我需要弄清楚的是如何在用戶提交后保持該特定表單的顯示。

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";
    }
}

這是選擇第一個 function 時會發生什么的示例,但我無法讓腳本標簽的回聲為我的一生工作。

<!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>

這是我所有的代碼。

把這個:

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

在您的文檔內加載或准備好 function,用 PHP 標簽包裹。 丟失echo()中的<script></script>標簽,因為 onload 或准備好的 function 已經設置為 javascript。

似乎您沒有加載或准備好 function,所以創建一個或另一個。

雖然不是首選方法,但綁定到<body>標記的 onload 可能會這樣寫:

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

<body onload="onloaders()">

但是,具有相同內部結構的 jQuery 文檔就緒 function 將是首選方法。 但是,兩者都應該起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM