为什么变量在分配新值后没有改变?

时间:2015-09-23 03:52:02

标签: php

我有这个代码在提交表单后更改$ date变量。

<?php 
    $date=date("m/d/Y");
?>

<form action="" method="post">
   <input type='text' value=<?php echo $date ?> name='day1'/>
   <button type='submit' name='btnFilter'>Filter</button>
</form>

<?php
  if(isset($_POST['btnFilter'])){
    $date=$_POST['day1'];
  }
  echo $date;
?>

我想要发生的是今天#day1的默认值。当用户更改并提交时,页面必须回显新日期,并且#day1中的值必须是新用户输入。但是在我的代码中,当用户提交表单时,#day1的值变为今天(默认值)。我需要改变什么?

3 个答案:

答案 0 :(得分:1)

尝试使用:

<?php 
    $date = date("m/d/Y");

     if(isset($_POST['btnFilter'])){
        $date = $_POST['day1'];
     }

?>

<form action="" method="post">
   <input type="text" value="<?php echo $date ?>" id="day1" name="day1"/>
   <input type="submit" id='btnFilter' name="btnFilter">Filter</button>
</form>

您正在使用不带$_POST值的ID ..为输入标签指定名称。

答案 1 :(得分:0)

  1. 为您的提交按钮添加名称。
  2. 用引号括起文本字段的值。
  3. 为您的文字字段命名。那就行了。

    <form action="" method="post">
        <input type="text" name="day1" value="<?php echo $date ?>" id="day1"/>
       <button type="submit" name="btnFilter" id='btnFilter'>Filter</button>
    </form>    
    
  4.   

    注意:您在$_POST['']中访问的内容应该是表单元素的name属性而不是id属性。

答案 2 :(得分:0)

我不知道你为什么要检查btnFilter的设置。尝试检查day1元素:

<?php 
    $date = date("m/d/Y");
?>

<form action="" method="post">
    <input type='text' value=<?php echo $date ?> name='day1'/>
    <button type='submit' name='btnFilter'>Filter</button>
</form>

<?php
    if(isset($_POST['day1'])){
    $date = $_POST['day1'];
}
echo $date;
?>