Php MYSQL Запрос на более чем одной странице - PullRequest
0 голосов
/ 06 декабря 2018

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

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

Ответы [ 4 ]

0 голосов
/ 06 декабря 2018

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

$_SESSION['page2'] = $date;

Аналогично, вы можете сделать для страницы 3

$_SESSION['page3'] = $date;

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

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

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

0 голосов
/ 06 декабря 2018

@ user2332060,

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

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

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

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

0 голосов
/ 06 декабря 2018

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

Страница 1:

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

Страница 2:

$date=$_REQUEST['dt'];
$sql="... Where date='".$date."'";
0 голосов
/ 06 декабря 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...