Получить данные из базы данных без обновления всей страницы - PullRequest
0 голосов
/ 25 марта 2010

Мой проект посвящен школьному администратору. У меня есть страница с именем: createClass.php, где пользователь вставляет оценку, профиль и т. Д. Когда он нажимает «отправить», страница с именем createClass.php загружается. Внутри этой страницы у меня есть весь код, который вставляет данные в базу данных, а также структура «если», которая говорит: «Класс уже существует», если в базе данных есть другой класс с такими же спецификациями. Также на второй странице (creatClass.php) у меня есть небольшая таблица, которая показывает место каждого студента. В первый раз все ячейки зеленого цвета (это означает, что место свободно), и если я нажму на одну из них, появится всплывающее окно, которое позволит мне добавить информацию об ученике из этого места. Если место занято, ячейка будет красной (посмотрите здесь: http://screencast.com/t/NzM2YzYxNjct). Большая проблема в том, что ячейка будет красной только после обновления страницы (место запрашивает данные из базы данных). Если я нажимаю Появится сообщение «класс уже существует». Чтобы проверить код, я добавил в комментарии все строки, которые проверяют и добавляют соответственно класс. Я думаю, что моя проблема может быть решена с помощью ajax. Я жду ответа. С уважением, Стефан

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Чтобы обновить исходное окно из всплывающего окна, используйте этот фрагмент JavaScript:

window.opener.location.refresh();
0 голосов
/ 25 марта 2010

Вы должны перенаправить пользователя на другую страницу после вставки данных (вообще говоря, после запроса POST).

Измените форму в createClass.php так, чтобы она указывала на ту же страницу, и переместите код вставки базы данных в этот файл.

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // insert the data here
    header('Location: /createdClass.php');
    exit();
}

?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
...
</form>

(Обновление) Поток пойдет так:

  1. Пользователю отображается форма в createClass.php
  2. Когда пользователь отправляет форму, отправка обрабатывается в том же файле createClass.php, который вставляет строку базы данных, а затем не показывает страницу, но указывает браузеру перейти на файл createClass.php.
  3. Теперь браузер загружает createClass.php, который просто показывает таблицу учеников (но не добавляет базы данных!). Теперь вы можете обновлять createClass.php столько раз, сколько хотите, без побочных эффектов.

Обратите внимание, что приведенное выше не может решить все ваши проблемы. Без дополнительной информации (или кода) я не могу помочь больше.

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