web-dev-qa-db-fra.com

Faire div disparaître après un moment

J'ai créé une page où, si l'utilisateur met à jour son formulaire, le système le renverra à l'utilisateur avec un message comme celui-ci:

header('loaction:/index.php?msg');

Sur le site index.php, il charge ceci:

if(isset[$_GET['msg'] {
$message = 'Updated';
echo '<div class="update_message">'.$message.'</div>';
};

Cela fonctionne bien, mais j'aimerais que le message disparaisse au bout de quelques secondes. J'ai essayé cela, mais je ne voulais pas disparaître:

if(isset[$_GET['msg'] {
$message = 'Updated';
echo '<div class="update_message">'.$message.'</div>';
echo "<script type='text/javascript'>
$(function() {
$('div.update_message').hide().fadeIn().delay(3000).fadeOut('slow');
})
</script>";
    }; 

Le message apparaît toujours, mais il ne s'efface pas.

2
Daniel Jensen

Vous utilisez un extrait de code jQuery, mais avez-vous chargé la bibliothèque jQuery?

Vous pouvez le faire en utilisant: JHtml::_('jquery.framework');

Voici le code mis à jour avec quelques modifications:

$msg = JFactory::getApplication()->input->get('msg');

if (isset($msg))
{
    echo '<div id="update_message">Updated</div>';

    JHtml::_('jquery.framework');
    JFactory::getDocument()->addScriptDeclaration('
        jQuery(function($) {
            $('#update_message').delay(3000).fadeOut('slow');
        });
    ');
}

J'espère que cela t'aides

1
Lodder