Реализовать чтение / прочтение, как в электронной почте - PullRequest
1 голос
/ 17 ноября 2009

Я пытаюсь реализовать что-то вроде прочитанного / непрочитанного в письме. Как я могу это сделать, используя jquery, php и mysql. Что я хочу сделать по шагам:

1 - Когда я нажимаю на строку в таблице HTML, я изменяю статус этого сообщения в базе данных. 2- И затем измените фон этой строки, но также, если я выйду из системы и повторно войду, строка останется измененной. 3- зная, что я уже использую классы CSS для строк таблицы.

Что я делал до сих пор, так это то, что я изменил статус этих конкретных сообщений в базе данных с обновлением.

Привет.

Ответы [ 3 ]

2 голосов
/ 17 ноября 2009

Я не могу дать вам весь код, потому что это слишком много, но вот как я бы это сделал:

  1. С помощью jQuery назначьте функцию для строк таблицы в событии onChange.
  2. Эта функция использует AJAX для уведомления сервера об изменении состояния этого события.
  3. Сервер обновляет статус для этой конкретной строки.
  4. Он может отправить обратно HTML-код для этой строки, или вы можете просто изменить класс с помощью jQuery.
  5. Поскольку статус теперь изменяется в базе данных, правильный статус будет отображаться после повторного входа в систему, поскольку в этом случае страница будет загружена с сервера (я предполагаю, что) ...

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

Если вам нужна дополнительная помощь в написании кода, прокомментируйте!

0 голосов
/ 06 февраля 2010

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

Набор результатов зацикливания по электронной почте.

<tr class="email_unread"><td><img class="email" id="email_id_'.$email_id.'" /></td><td> '.$email_subject.' </td></tr>

Вы должны установить для класса либо email_read, либо email_unread, в зависимости от того, было ли прочитано письмо. if ($ email_read = 1) $ css = "email_read"; иначе $ css = "email_unread";

Используйте jQuery для грязной работы.

<script type="text/javascript">
        $(document).ready(function() {
            $("img.email").click(function(){

                    $.get("emailRead.php", { id: $(this).attr("id") } );
                    $(this).parent().parent().removeClass('email_unread').addClass('email_read');

            });

        }); 
    </script>

Это будет emailRead.php

connect_db(); // CONNECT TO DB

$id = $_GET['id'];
$id = str_replace("email_id_","",$id);

$query="UPDATE email SET email_read = 1 WHERE email_id = '$id'";

$getResults=mysql_query($query) or die(mysql_error());

Здесь вы берете переменную GET, обрезаете часть email_id_, чтобы просто получить число, а затем используете его в запросе на обновление. Конечно, вам придется проверять, что входит в emailRead.php

.
0 голосов
/ 17 ноября 2009

Если это производственный сайт, вы, вероятно, все равно захотите предоставить решение без JavaScript, поэтому, если вы меняете страницы одним нажатием, вам вообще не нужно включать javascript. Создайте в базе данных логическое поле для чтения, которое по умолчанию равно 0. Когда вы переходите по ссылке, чтобы просмотреть запись, сохраните идентификатор записи в URL и измените «read» на 1 для этой записи через php на странице, на которую вы переходите после перехода по ссылке.

Если вы хотите остаться на той же странице после щелчка, вам нужно задействовать javascript, как упоминал Франц выше, но было бы неплохо сделать это постепенно, с добавленным javascript значение и основные функциональные возможности доступны в любом случае.

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