2015-09-06 1 views
-1

У меня есть фильтр даты для записей из базы данных. На первой странице у меня есть список всех записей. На втором я имею тот же фильтр и почти фильтруется по списку дат. Так что я хочу сохранить значения фильтра с первой страницы.Сохраните поле ввода на следующей странице

Вот мой код:

<form action="filter.php" method="post"> 
 
<label>From</label><input name="from" required="true" type="date"/> 
 
<label>To:</label> <input name="to" required="true" type="date"/> 
 
<input name="" type="submit" value="Search" /> 
 
</form> 
 
<table> 
 
... 
 
... 
 
... 
 
</table>

+1

Вы можете публиковать значения в следующей форме или вы можете передать значения в url для этого –

+0

thx, но я не знаю, как это сделать. –

+0

Можете ли вы опубликовать весь код. Все, что у вас есть, это форма и ничего больше, что не показывает, как вы получаете значения формы и форму вызова 2. Покажите, что вы приложили определенные усилия для решения проблемы. – crafter

ответ

1

Вы можете получить доступ к переменной после нажатия кнопки отправить .. Therfore вы должны изменить <input name="" type="submit" value="Search" /> к <input name="submit" type="submit" value="Search" />

<?php 

    if(isset($_POST['submit'])) { 
     $from = $_POST['from']; 
     $to = $_POST['to']; 
    } 

?> 

Вы можете также сохраняйте переменную в сеансах, чтобы получить доступ к ней со всех сторон.

<?php 
    session_start(); 

    if(isset($_POST['submit'])) { 
     $from = $_POST['from']; 
     $to = $_POST['to']; 
     $_SESSION['from'] = $from; 
     $_SESSION['to'] = $to; 
    } 
?> 

Третий вариант был бы, чтобы установить метод элемента формы к method="GET". После этого вы можете получить доступ к значениям через:

<?php 
    if(isset($_GET['submit'])) { 
     $from = $_GET['from']; 
     $to = $_GET['to']; 
    } 
?> 

С ПОЛУЧИТЬ параметра вы можете также сделать волшебную вещь, как: http://www.example.com/index.php?from=20150906&to=20150907. Таким образом, вы получите значение переменного через URL ..

Для получения дополнительной информации см: http://php.net/manual/en/reserved.variables.php

Я надеюсь, что я мог бы вам помочь ...

+1

Будьте осторожны с кронштейнами Markus. Мне пришлось отредактировать ваш ответ. У вас было немало недостатков и было бы брошено/вызвано ошибками разбора –

+0

Спасибо за это! – Markus

+0

Добро пожаловать в Маркус. –

1

В вашем случае, так как вы используете POST, вы можете получить доступ к значениям

if(isset($_POST['submit']])) { 
    $from = $_POST['from']; 
    $to = $_POST['to']; 
} 

Как пользователь Маркус уже сказал, вы должны изменить свой submit-button имя-атрибут к самостоятельному пояснительному имени, чтобы держать его легко MAINT в коде и проверьте, была ли эта кнопка нажата.

Затем вы должны установить его через value -трибут в вашей форме.

<form action="filter.php" method="post"> 
    <label>From</label><input name="from" value="<?php echo $from; ?> required="true" type="date"/> 
    <label>To:</label> <input name="to" value="<?php echo $from; ?>required="true" type="date"/> 
    <input name="submit" type="submit" value="Search" /> 
</form> 

Имейте в виду, что никогда нельзя безопасно передавать несаминизированные данные. Поэтому вы должны рассмотреть вопрос о дезинфекции ввода пользователя. (например, такой формат, как ГГГГ-ММ-ДД)

Смежные вопросы