2015-09-23 3 views
0

У меня есть этот код, который меняет переменную $ 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; 
?> 

То, что я хотел, это значение по умолчанию # дня1, которое должно быть сегодня. И когда пользователь меняет его и отправляет, страница должна повторять новую дату, а значение в # день1 должно быть новым пользователем. Но в моем коде, когда пользователь отправляет форму, значение # day1 становится сегодня (значение по умолчанию). Что мне нужно изменить?

+1

nice Stealth редактировать (не помечать как редактирование) и используя ответы ниже. * tsk tsk * Ваше исходное сообщение http://stackoverflow.com/revisions/32730657/1 не содержит атрибута имени для вашей кнопки. '' –

+0

На самом деле, я сожалею об этом. Я сделал это, потому что моя проблема не изменилась с этими изменениями. –

+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. Назначьте имя своим входным тегам.

+0

Thnak you very much. Моя проблема решена. –

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>  
    

Примечание: Что бы вы получите доступ в $_POST[''] должно быть name атрибута не id атрибута элементов формы.

+0

с изменением имени для элементов формы, он должен работать нормально. –

+0

Он работал только при применении метода @raveenanigam. –

+0

вы должны сохранить код php выше формы, чтобы получить желаемый результат, я изменил только часть формы. –

0

Я не знаю, почему вы проверяете isset of 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; 
?> 
Смежные вопросы