управляемый данными — Php MYSQL Query на нескольких страницах

Я разработал Php & Mysql, управляемый данными веб-сайт «Студенческий отчет о прогрессе». Его панель навигации содержит 3 ссылки для страницы 1, страницы 2 и страницы 3.
На странице 1 показана общая процентная сводка результатов теста ученика (по умолчанию его запрос на выбор mysql относится к начальной дате класса до текущей даты), а на странице 1 также есть два текстовых поля с типом даты, кнопка «Отчет о прогрессе» для отображения прогресса ученика по дате «Страница 2» и кнопка «Посещаемость» для отображения даты на странице 3.

При прямом щелчке по ссылке на странице 2 и ссылке на странице 3 она ничего не показывает, потому что сначала нам нужно выбрать даты на странице 1, а затем нажать кнопку прогресса или кнопку посещаемости, чтобы получить «результат базового запроса mysql» на странице 2 и странице 3 соответственно. , После получения результата на странице 2 и странице 3, когда пользователь нажимает на ссылку страницы 2 и страницы 3 на панели навигации, он обновляется и результат исчезает. Я хочу и то и другое (Страница 2 & 3) оставаться на прежних результатах, несмотря на переход по их ссылкам на панели навигации. Как можно решить эту проблему?

0

Решение

Вы можете использовать JavaScript, чтобы не обновлять страницу, когда вы нажимаете на Page2 или Page3 как «вкладка» в Bootstrap -> Вкладка начальной загрузки (в середине страницы)

Или вы можете выбрать систему, в которой вы нажмете на страницу 1, она получит только первые 20 элементов, которые вам нужны, на странице 2 — 21-й элемент к 40-му элементу …
И вы делаете запрос COUNT (*), чтобы узнать, сколько страниц у вас будет.

0

Другие решения

@ User2332060,

Из вашего описания я понял, что вам нужны разные результаты на всех трех страницах: я бы порекомендовал использовать jQuery и ajax для этого.

Когда результаты загружаются на страницу 1 с помощью запроса mysql (от даты к дате), у вас есть эти даты, когда вы нажимаете на страницу 2 или страницу 3, вызываете функцию ajax и пропускаете эти даты, или если пользователь выбирает любую дату, передает ее в ajax и загружает результаты на страницу 3 и Страница 3 соответственно.

Теперь, когда вы перезагружаете или обновляете страницу 2 или страницу 3, вы говорите, что результаты исчезают, потому что вы никогда не сообщали своему сценарию, откуда брать данные, поэтому попробуйте включить функцию загрузки Windows в jquery и использовать запрос mysql по умолчанию для каждой соответствующей страницы.

Надеюсь это поможет!

0

Если я правильно понял ваш вопрос, то что вы пытаетесь сделать, это передать то, что было выбрано на странице 1, чтобы этот выбор сохранился для страницы 2 и страницы 3? Если мое понимание верно, то вы можете передать или опубликовать свой выбор в браузере. В целях безопасности вы можете даже хэшировать его, чтобы его нельзя было перехватить. Ниже приводится краткое описание того, что вы могли бы сделать, если я правильно понял ваш вопрос, я мог бы подробнее остановиться на следующем методе.

Страница 1:

if($_POST['date'] && ...){
$url="page2.php?dt=$_POST['date']";
}

Страница 2:

$date=$_REQUEST['dt'];
$sql="... Where date='".$date."'";
0

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

$_SESSION['page2'] = $date;

Точно так же вы можете сделать для page3

$_SESSION['page3'] = $date;

Примечание. Создайте разные ключи сеанса для обеих страниц и сбрасывайте значения в переменных сеанса при каждой загрузке страницы page1.

unset($_SESSION['page2']);
unset($_SESSION['page3']);

Надеюсь, это поможет вам.

0