如何使用PHP逻辑隐藏页面元素?

问题描述 投票:1回答:2

好,所以我知道了:

<style type="text/css">
  <!--
  #frmFeedback {
  display: <?php echo($myFormDisp); ?>;
  }
  -->
</style>

和此:

//hide form
$myFormDisp = "none";

所以...为什么不隐藏表格?

完整代码(已修订):

<html>

<head>
<title>Feedback Form</title>
<!-- Modified by: Student Name -->
<!-- The page should accept user input in form values, then, after the form
   is submitted, hide the form and reveal a confirmation message using
   the data entered into the form elements. -->


</head>

<body>
<h1 align="center">We Need You!</h1>
<h2 align="center">Please provide us with your valuable feedback!</h2>
<hr>

<?php
while (!(isset($myName) || isset($myAge) || isset($myFav) || isset($myComments)))
  {
  $myName = "anonymous";
  $myAge = "unspecified";
  $myFav = "unspecified";
  $myQuestion = "unspecified";
  }

  $mySubmit = isset($_POST['btnSubmit']);
?>

<form name="frmFeedback" id="frmFeedback" action="sendFeedback.php" method="post" <?php if ($mySubmit == "Send Feedback!") { echo ' style="display: none"'; } ?>>
Name: <input type="text" name="txtName">
<br>
<br>
Age: <select name="mnuAge">
    <option value="youth">Youth</option>
    <option value="teen">Teen</option>
    <option value="adult">Adult</option>
    <option value="senior">Senior</option>
     </select>
<br>
<br>
What was your favorite page?
<br>
<input type="radio" name="radFav" value="ASP tutorial">ASP Tutorial
<br>
<input type="radio" name="radFav" value="JavaScript tutorial">JavaScript Tutorial
<br>
<input type="radio" name="radFav" value="PHP tutorial"> PHP Tutorial
<br>
<br>
Which pages did you visit?
<br>
<input type="checkbox" name="chkView[]" value="ASP tutorial">ASP Tutorial
<br>
<input type="checkbox" name="chkView[]" value="JavaScript tutorial">JavaScript Tutorial
<br>
<input type="checkbox" name="chkView[]" value="PHP tutorial"> PHP Tutorial
<br>
<br>
Do you have any additional scripting questions?
<br>
<textarea name="txaQuestions" wrap="soft" cols="50" rows="10">
</textarea>
<br>
<br>
<input type="submit" name="btnSubmit" value="Send Feedback!">
</form>
<?php

//Once the form elements have been filled in, extract data from form and store in variables
$myName = isset($_POST['txtName']);
$myAge = isset($_POST['mnuAge']);
$myFav = isset($_POST['rdFav']);
$myQuestion = isset($_POST['txaQuestions']);


if ($mySubmit == "Send Feedback!")
  {
    //hide form
    //$myFormDisp = "none";

    //display message
  print("<h3 align='center'>Thank you!!</h3>");
  print("Hello, ".$myName."!");
  print("Thank you very much for your feedback on our tutorial site.");
  print("The ".$myAge." age group is one of our most critical market segments, so we really appreciate the time you took to fill out our form. ");
  print("Active web visitors like yourself are what make these pages possible. ");
  print("We are very glad you enjoyed the ".$myFav." page.");

  if (isset($_POST['chkView'])) 
    {
    print(", and hope that you found the other pages you viewed (");
    foreach($_POST['chkView'] as $myView)
     {
      print("".$myView.", ");
     }
    print("etc.) to be just as helpful.");
    }
  else
    {
     print(". The next time you visit we hope you have a chance to view our other tutorials also.</p>");
    }

  print("<p>We will respond to your question: \"".$myQuestion."\" just as soon as we can</p>");

  print("<h3 align='center' Thanks for stopping by!</h3>");
  }
else
  {
  //set form to display
  //$myFormDisp = "block";
  }

?>

</body>
</html>
php css
2个回答
0
投票

您在代码中的值分配已被注释掉。如果在现实中将其注释掉,则您的变量将永远无法获得display的值。我在您的代码中看不到style标记,但是假设有一个

<style type="text/css">
  <!--
  #frmFeedback {
  display: <?php echo($myFormDisp); ?>;
  }
  -->
</style>

然后需要按顺序对$myFormDisp进行正确地评估。


-1
投票

您确定CSS呈现时已设置吗?也许在该CSS声明之前尝试<?php var_dump($myFormDisp); ?>

此外,在不相关的旁注中,echo不需要括号:

// This is better form for echo statements:
<?php echo $myFormDisp; ?>

-1
投票

您可能需要:

<?php echo $myFormDisp; ?>

© www.soinside.com 2019 - 2024. All rights reserved.