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

jQuery Discussion :

plugin autoresize sur éléments ajoutés dynamiquement


Sujet :

jQuery

  1. #1
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut plugin autoresize sur éléments ajoutés dynamiquement
    Bonjour,

    Je suis en train de construire un site communautaire et j'utilise pour les textarea le plugin de jquery autoresize. Normalement, il devrait prendre en charge toutes les textarea mais ce n'est pas le cas. Le contenu de la page est appelé en AJAX pour pouvoir se rafraichir sur demande et bientôt quand il y a du nouveau contenu.

    Les textarea qui se trouve dans cette requêtes ajax ne sont pas affectées par autoresize ce qui est gênant car je comptait dessus pour prendre le moins de place possible. Je ne suis qu'un autodidacte donc mon code n'est surement pas le plus optimisé si ce n'est du code de cuisine. Voici les parties de code qui vous seront utiles pour m'aider. Un tout grand merci.

    fichier actualite.php
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
            session_start();
            
            include ("admin/include/config.php");
            include ("include/function.php");
            
            $connexion=mysql_connect($host, $user, $pass);
            $database=mysql_select_db($nombase);
            $selection_actualite=mysql_query("SELECT * FROM commentaire WHERE id_parent='0' ORDER BY date_message DESC LIMIT 10");
            
            while($recap = mysql_fetch_assoc($selection_actualite)) {
                    echo "<div id='cont_news'>";
                            echo "<div id='avatar'>";
                                    avatar($recap['id_user'], 50);
                            echo "</div>";
                            echo "<div id='news'>";
                                    nom($recap['id_user']);
                                    echo "<br />"; 
                                    formatage_texte($recap['message']);
                                    echo "<br />"; 
                                    ilya($recap['date_message']);
                                    echo "<br />";
                                    echo "<span onclick='com($recap[id]);'>commenter</span> | j'aime | je n'aime pas | partager";
                                    echo "<div id='commentaire'>";                          
                                    $selection_commentaire=mysql_query("SELECT * FROM commentaire WHERE id_parent='$recap[id]' ORDER BY date_message ASC");
                                            while($recap2 = mysql_fetch_assoc($selection_commentaire)) {
                                                    echo "<div id='cont_com'>";
                                                            echo "<div id='avatar'>";
                                                                    avatar($recap2['id_user'], 50);
                                                            echo "</div>";
                                                            echo "<div id='com'>";
                                                                    nom($recap2['id_user']);
                                                                    echo "<br />"; 
                                                                    formatage_texte($recap2['message']);
                                                                    echo "<br />"; 
                                                                    ilya($recap2['date_message']);
                                                            echo "</div>";
                                                    echo "</div>"
                                            }
                                    echo "</div>";
                                            
                                    echo "<div id='com_area_$recap[id]' class='invisible'>";
                                            echo "<form onsubmit='ajout(this.message.value,this.fifi.value);return false' action=''>";
                                                            echo "<input type='hidden' name='fifi' value='$recap[id]'>";
                                                            echo "<TEXTAREA name='message' id='redimension' rows='1' style='width:100%;height:20px;' >Exprimez-vous...</TEXTAREA>";
                                                            echo "<input type='submit' value='Connexion'>";
                                            echo "</form>"; 
                                    echo "</div>";
                            echo "</div>";
                    echo "</div>";
            }
    ?>
    fonction js
    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
    function afficher_actualite() {
    	var xhr = getXMLHttpRequest()
     
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
     
    		actu = xhr.responseText
     
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 1){
    		}
    		if(xhr.readyState == 2){
    		}
    		if(xhr.readyState == 3){
    		}
    		if(xhr.readyState == 4 && xhr.status == 200){
    			a('contenant_news').innerHTML = actu;
    		}
    	}
    	xhr.open("POST","actualite.php",true);
    	xhr.send(null);
    }
    fonction autoresize perso
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $(document).ready(function(){
    	$('textarea').autoResize({
    	});
    });
    S'il vous en faut plus, merci de me le dire et je rajouterai dès que possible.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Il faut passer par :
    http://api.jquery.com/live/
    Dans ton cas regarde à la fin "trigger custom event"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Merci pour la réponse, je vais regardé ça et voir si je m'en sors. Je vous tiens au courant.

    [Edit]

    Et bien, je n'arrive pas à adapter. Je ne comprends pas très bien la logique de ce plugin. Les attributs, je ne sais pas lequel mettre pour une textarea qui doit se redimensionner avec des attributs click et autre.

    [Edit]

    Je crois que le problème vient du fait que j'invoque le code avec de l'AJAX. Partout ailleurs sur la page normal, donc pas le fichier actualite.php, le script fonctionne parfaitement. C'est à croire que javascript n'arrive pas à influencer ajax ce qui me parait énorme vu qu'ils sont quand même cousin. Une idée pour me dépatouiller?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Tu veux dire que tu recupères du javascript dans le retour ajax ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre du Club Avatar de Sianobel
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2007
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Non, je ne récupère pas de javascript dans la réponse d'ajax. La page générale contient un script de javascript qui est censé redimensionner les textarea. Celle qui sont dans la réponse ajax ne sont pas affectée mais les autres, présente en html pur dans la page principale son affectées.

    [Edit]

    Fallait juste redéclarer la fonction pour les textarea après le rafraichissement de la div pour qu'elle soit prise en compte.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TinyMCE] Activation sur nouveaux éléments ajoutés dynamiquement
    Par Recif dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 11/06/2013, 14h08
  2. Positionnement d'un élément ajouté dynamiquement
    Par katoyi dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 22/08/2010, 00h10
  3. Interagir sur élément crée dynamiquement
    Par derzy971 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/03/2010, 08h00
  4. Evenement sur controls ajouter dynamiquement
    Par TheBlackReverand dans le forum ASP.NET
    Réponses: 0
    Dernier message: 11/02/2009, 12h54
  5. Event sur div ajouté dynamiquement
    Par Paci88 dans le forum jQuery
    Réponses: 7
    Dernier message: 21/01/2009, 13h26

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