0

我有这两个文件

一个.php

<?

 echo "
     <form action = 'B.php' method = 'post'>
           Age: <input type = 'text' name = 'age'>
           <input type = 'submit' name = 'send' value = 'send'>
      </form>
 ";

?>

B.php

<?

  $age = $_REQUEST ['age'];

  if (isset($_POST['send'])){
      echo "Are you sure you wanna send this age?";
      echo "
             <form action = 'B.php' method = 'post'>
             <input type = 'submit' name = 'age2' value = 'YES'>
          ";

                 if (isset($_POST['age2']) && !isset($_POST['send'])){
                     echo "Your final age is".$age; //It doesn't display!!! :(
                 }
            echo "</form>";
  }
 ?>

如果我删除第二个 if isset,将显示 $age。

如果您意识到,在第二个问题中,我有两个条件,第一个条件是必须单击“是”按钮,第二个条件是不能单击发送按钮。

我已经尝试了很多,但我没有得到这个:(

PS我想在同一页面中显示它。没有其他页面。如果这不可能,那么我将在其他页面中制作。

4

2 回答 2

3

您确实需要:

  • 分出第二个if。不可能两者都是真的。要么 button1 被按下,要么没有。
  • 用 a 继续前一个变量<input type=hidden>
  • 了解字符串和heredoc语法。
  • 修复你可怕的缩进。

所以它看起来像:

<?php

  $age = $_REQUEST['age'];

  if (isset($_POST['send'])) {

      echo <<<END
             Are you sure you wanna send this age?
             <form action='B.php' method='POST'>
                <input type='submit' name='age2' value='YES'>
                <input type=hidden name=age value='$age'>
             </form>
END;

  }

  if (isset($_POST['age2'])) {
      echo "Your final age is $age";
  }

?>
于 2012-11-08T01:57:40.380 回答
0

你的意思是。您发送第一个表格。然后它加载另一个页面进行确认。一旦你确认你得到原来的年龄。正确的?

像这样试试。

<?php
  $age = $_POST['age'];
  if (isset($_POST['send'])):
?>
  Are you sure you want to send this age?
  <form action = 'b.php' method = 'post'>
  <input type = 'hidden' name = 'age' value = '<?php echo $age; ?>'>
  <input type = 'submit' name = 'age2' value = 'YES'>

<?php
  endif;
  // This wont show up if the first form is sent
  if (isset($_POST['age2'])){
      echo "Your final age is ".$_POST['age']; //It does display!!! :(
  }

 ?>
于 2012-11-08T01:52:40.280 回答