PHP: эхо-сообщение за указанное время - PullRequest
1 голос
/ 13 мая 2011

Я хочу отобразить строку «Ваш статус был опубликован» примерно на 3 секунды или более, чем я хочу, чтобы она исчезла.

На данный момент у меня есть новостная лента, где пользователь можетотправлять сообщения, и после того, как они публикуются, эта строка текста повторяется до повторного ввода URL.У кого-нибудь есть предложения?

if ($_POST['submit'])
{
$body = $_POST['body'];

if ($body)
{
    include ('connect.php');
    $date = date("Y-m-d");
    $email = $_SESSION['email'];
    $who = mysql_query("SELECT firstname FROM people WHERE email = $email");
    $insert = mysql_query("
    INSERT INTO status VALUES('','$email','$body','$date')");
    echo ('Your status has been posted <p></p>');
}
else
    echo 'Status required to post into news feed! <p></p>';
 }
 ?>

Статус:

Спасибо за помощь!

Джефф

Ответы [ 6 ]

3 голосов
/ 13 мая 2011

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

<p id="info-message">Your status has been posted</p>
<script>
  setTimeout(function(){
    document.getElementById('info-message').style.display = 'none';
    /* or
    var item = document.getElementById('info-message')
    item.parentNode.removeChild(item); 
    */
  }, 3000);
</script>

Также вам могут понадобиться эффекты затухания.Для этого я бы рекомендовал использовать такие библиотеки, как jQuery или Scriptaculous.

Полезные ссылки:
https://developer.mozilla.org/en/Window.setTimeout
http://api.jquery.com/fadeOut/
http://script.aculo.us/


Да, кстати, ваш скрипт уязвим для SQL-инъекций . Всегда экранирует параметры вашего запроса (или использует подготовленные запросы)!

0 голосов
/ 13 мая 2011

Вы не можете достичь этого только с помощью PHP;вам нужен JavaScript.Вот простой пример использования jQuery: http://jsfiddle.net/4surX/

0 голосов
/ 13 мая 2011

При отправке вывода в браузер, вы можете использовать javascript для управления временным окном, в котором вы хотите, чтобы ваш текст был виден.

Если вы используете jquery, вы можете использовать .hide () http://api.jquery.com/hide/

0 голосов
/ 13 мая 2011

Я бы использовал AJAX для этого.Вы можете убедиться, что данные были правильно вставлены в БД, а затем показать сообщение с javascript для количества времени, которое вы хотите.

0 голосов
/ 13 мая 2011

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

Если это i отображать в течение некоторого времени после того, как они впервые увидят веб-страницу, вы можете получить что-то вроде этого сообщения. Это сообщение исчезнет, ​​а затем добавится скрипт, который вызывается из действия onLoad вашего тега, который будет (например) спать в течение трех секунд. а затем установите содержимое этого div, чтобы быть пустым.

0 голосов
/ 13 мая 2011

Вы не можете сделать это с php.Попробуйте вместо этого Javascript.

...