IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Chargement de Javascript après un Appel Ajax


Sujet :

AJAX

Mode arborescent

Invité [AJAX] Chargement de... 11/02/2013, 15h41
NoSmoking Bonjour, tant qu'à utiliser... 11/02/2013, 18h48
Invité Tout d'abord merci pour ta... 11/02/2013, 20h50
Dr.Who ajouter une fonction... 16/02/2013, 03h51
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [AJAX] Chargement de Javascript après un Appel Ajax
    Bonjour,

    J'ai actuellement un petit problème, j'essaie après la soumission d'un formulaire en Ajax de rafraichir une partie de mon site que j'appelle avec un setTimeout. Le problème est que cette partie du site que je recharge possède un Jquery Accordion et que suite à l'appel il ne fonctionne pas et ne s'affiche pas correctement comme si le javascript n'est pas interprété.

    Submit du formulaire en Ajax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $('form:not(#imageform)').on('submit', function()
        {
            $(this).ajaxSubmit(
            {
                resetForm:true,
                beforeSend : function()
                {
                    $("#content").append('<div id="loader"></div>');
                },
                complete: function(html)
                {
                    $('#loader').remove();                         
                    setTimeout('refresh_div("playlist/ajax_listplaylist", "list_playlist")', 100);
                    setTimeout('refresh_div("playlist/ajax_playlist", "playlist")', 100);
                }
            });
     
            return false;
     });
    Fonction refesh_div :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    function refresh_div(url, div)
    {
        aleatoire = Math.random();
        //Mise à jour de la photo dans l'onglet
        var xhr_object = null;         
     
        if(window.XMLHttpRequest)
        { // Firefox
            xhr_object = new XMLHttpRequest();
        }
        else if(window.ActiveXObject)
        { // Internet Explorer
            xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
        }
     
        var method = 'GET';        
        var filename = url;
     
        xhr_object.open(method, filename, true);
     
        xhr_object.onreadystatechange = function()
        {  
            if(xhr_object.readyState == 4)
            {
                var tmp = xhr_object.responseText;
                document.getElementById(div).innerHTML = tmp;
            }
        }
        xhr_object.send("");
    }
    Fichier PHP (contenant l'accordion)

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <?php
    if(isset($num_playlist) && $num_playlist != "")
    {
        $active = $num_playlist - 1;
    }
    else
    {
        $active = 0;
    }?>
    <script>
    $(document).ready(function ()
    {
        $("#list_playlist").accordion({
            autoHeight: false,
            navigation: true,
            collapsible: true,
            active: <?php echo $active; ?>
        });
    });
    </script>
    <div id="list_playlist">
    <?php $list = $this->requestAction('list_playlist/all');
        if(!empty($list))
        {
            foreach($list as $playlist)
            {
                echo '<h3';
                        if(isset($num_playlist) && ($num_playlist == $playlist["ListPlaylist"]["id"]))
                        {
                            echo ' id="current"';
                        }
                        echo '>'.$playlist["ListPlaylist"]["name_playlist"].'</h3>
                         
                        <div id="songs_playlist">';
     
                            if(empty($playlist["Playlist"]))
                            {
                                echo "<p id='playlist_empty'>".__('This playlist is empty !')."</p>";
     
                                if(isset($num_playlist) && ($num_playlist != $playlist["ListPlaylist"]["id"]))
                                {
                                    echo '<p>
                                            <a href="/'.$server_name[1].'/playlist/switch_playlist?num='.$playlist["ListPlaylist"]["id"].'"><input type="button" class="play_playlist" value="'.__('Play').'"/></a>
                                        </p>';
                                }
                            }
                            else
                            {
                                foreach($playlist["Playlist"] as $song)
                                {
                                    $file = $this->requestAction(array('controller' => 'file', 'action' => 'file_list_playlist'), array('pass' => array($song["file_id"])));
     
                                    if(empty($file))
                                    {
                                        echo "<p id='playlist_empty'>".__('This playlist is empty !')."</p>";
                                    }
                                    else
                                    {
                                        foreach($file as $song)
                                        {
                                            echo '<div class="song">
                                                    <span>'.tronquer($song["File"]["title"], 20).' - '.tronquer($song["File"]["artist"], 20).'</span>
                                                    <form action="/'.$server_name[1].'/playlist/delete" method="post">
                                                        <input type="hidden" value="'.$song["File"]["folder"].'" name="folder"/>
                                                        <input type="hidden" value="'.$playlist["ListPlaylist"]["id"].'" name="playlist"/>
                                                        <input type="hidden" value="'.$song["File"]["id"].'" name="file_id"/>
                                                        <input type="image" src="/'.$server_name[1].'/img/little_delete_grey.png" id="delete_playlist" onMouseOver="this.src=\'/'.$server_name[1].'/img/little_delete.png\';" onMouseOut="this.src=\'/'.$server_name[1].'/img/little_delete_grey.png\';"/>
                                                    </form>
                                                </div>';
                                        }
                                    }
                                }
     
                                if(isset($num_playlist) && ($num_playlist != $playlist["ListPlaylist"]["id"]))
                                {
                                    echo '<p>
                                            <a href="/'.$server_name[1].'/playlist/switch_playlist?num='.$playlist["ListPlaylist"]["id"].'"><input type="button" class="play_playlist" value="'.__('Play').'"/></a>
                                        </p>';
                                }
                            }
                echo    '</div>';
            }
        }
    ?>
    </div>

    Merci d'avance pour votre aide !
    Dernière modification par Bovino ; 11/02/2013 à 15h57. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) !

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2016, 13h19
  2. Javascript inactif après un appel ajax
    Par yann18 dans le forum jQuery
    Réponses: 2
    Dernier message: 29/09/2011, 17h49
  3. [AJAX] Pas de javascript après un innerHTML
    Par kryogen dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 24/03/2008, 17h29
  4. [AJAX] Retourner une valeur après un appel asynchrone ?
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/01/2008, 10h03
  5. [AJAX] Executer du javascript apres transfo XSL
    Par Clercq dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/11/2006, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo