Действие, если isset..php / javascript - PullRequest
0 голосов
/ 22 февраля 2010

Я сохраняю переменную сеанса при вставке комментария .. под названием user_message .. и я хочу, чтобы, когда user_message, были сохранены, ТО, показать сообщение на index.php index.php прямо сейчас:

<div id="message">
<? echo $_SESSION["user_message"]; ?>
</div>

Но вам нужно будет обновить (f5) сайт, чтобы увидеть сообщение ПОСЛЕ его сохранения.

Но я хочу, чтобы, если переменная user_message что-то сохранила, то отображает это ..

Надеюсь, вы понимаете.

Ответы [ 3 ]

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

Я не уверен, что понимаю ваше намерение - хотите ли вы обновить страницу, на которой находится пользователь, после того, как он / она отправит новый комментарий?

Если это так - если вы используете обычную форму post / get, то вы можете перенаправить запрос пользователя на любую нужную страницу и показать уведомление, используя код @Seb, написанный выше.

Если вы используете ajax для отправки комментария, вы можете вернуть ответ от вызова ajax, уведомив функцию javascript, создавшую вызов ajax, которую должна обновить страница, а затем установите для переменной location.href значение what когда-либо URL, который вы хотите.

Однако - если вы хотите обновить страницу для всех пользователей, видящих страницу комментариев, после того, как другой пользователь отправил комментарий, вам потребуется повторный вызов ajax каждые несколько секунд / минут, который проверяет, изменилось ли что-либо в сервер, и если это так, используйте переменную location.href, чтобы перенаправить пользователя на другой. Это невозможно, если вы полагаетесь только на переменную сеанса, сохраненную на компьютере комментатора, поскольку он доступен только в том случае, если ваш сайт использует оригинальный комментатор.

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

Я рекомендую Javascript, если вы хотите, чтобы сообщение отображалось на той же странице, что и форма комментариев. Если вы используете jQuery http://jquery.com/, вы можете сделать что-то вроде.

$('form#CommentFormID').submit(function() {
    var message = $('form#CommentFormID textarea#comment').html();
    $('body').append('<div id="message">' + message + '</div');
});

Не пробовал, но должно работать нормально.

0 голосов
/ 22 февраля 2010
<?php if( isset($_SESSION["user_message"]) ): ?>
  <div id="message">
    <? echo $_SESSION["user_message"]; ?>
  </div>
<?php endif; ?>
...