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 :

Formulaire HTML de taille variable


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Formulaire HTML de taille variable
    Bonjour,

    depuis quelques jours, j'essaie de me faire aider pour un problème de Javascript.

    au final, j'ai ce code-ci :
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
    session_start() ;
     
    require_once './includes/database_user.php';
    require_once './includes/functions/functions.php';
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    	<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<link href="./css/style.css" rel="stylesheet" media="all" type="text/css"  />
    		<script src="./javascript/ckeditor/ckeditor.js"></script>
    		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    		<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
     
    		<script language="javascript" type="text/javascript">
    		jQuery("#add_chap").click(function(){
    		    $("#add_articles p").append("<textarea name='chapitre[]'></textarea>");
    		});
    		</script>
     
    		<title>Bifrost</title>
     
    	</head>
     
    	<body>
     
    <?php 
                    require_once './includes/menu.php';
    ?>
     
    		<div id="contener">
     
    		<!-- --------------------------------------------- -->    
     
    <?php 
                            require_once './includes/header.php';
    ?>
     
    		<!-- --------------------------------------------- --> 
    	<div id="corps">
    	    <div class="gris"></div>
     
    	<form method="post" action="news.php?action=insert" id="add_articles">
     
            <p>                                  
                <label for="title">Titre</label> : <input type="text" name="title" id="title" />
     
                <textarea class="ckeditor" name="content" id="content"></textarea>
     
     
            </p>
            <input type="button" value="Ajouter" id="add_chap" name="add_chap" />
     
        </form>       
     
    	    <div style="clear:both"></div>     
    	</div>
    		<!-- --------------------------------------------- --> 
     
    <?php 
                            require_once './includes/footer.php';
    ?>
     
    		</div>
    	</body>
    </html>
    et le but est d'ajouter un champ "textearea" à chaque fois que je clique sur le bouton "Ajouter" comme ici : http://jsfiddle.net/XSdR4/

    Cependant, mon bouton n'est pas cliquable et ce, sans aucune raison apparente!

    Quelqu'un pourrait-il m'aider?

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    sans aucune raison apparente
    Euh... si quand même !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jQuery("#add_chap").click(...)
    quand tu définis l'événement, l'élément auquel il se rattache n'existe pas, ton événement se perd donc dans le vide.

    Qu'est-ce que la notion de Ready ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Euh... J'ai bien lu le message une dizaine de fois, le lien aussi mais je ne vois absolument pas le rapport entre les deux et ne comprends même pas la réponse :/

    Il faut prendre en compte que je n'ai jamais fait de cours sur le JS et encore moins sur JS.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    c'est tout l'inconvénient d'environnement tel que jsfiddle, regarde bien et tu verras que ton code s’exécute sur un onload, donc acte...
    Qu'est-ce que la notion de Ready ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Non, je ne comprends toujours pas.

    Je le répète, je n'y connais absolument rien au Javascript et encore moins sa logique de fonctionnement, les seuls que j'ai utilisé c'était des scripts déjà prêts et là c'est pareil.

    Personne ne peut simplement me le corriger ? ça fait 3 jours que je suis là-dessus et tout mon temps libre y passe...

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    ça fait 3 jours que je suis là-dessus et tout mon temps libre y passe...
    commence simplement par lire les premiers paragraphes de la Introduction, rien de bien sorcier...
    Personne ne peut simplement me le corriger ?
    il n'y a pas d'erreur dans ce code, c'est juste l'endroit ou il est placé qui doit te poser un problème.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Je viens de lire la première page de la FAQ, je ne vois toujours pas comment régler le problème...

    J'ai placé mon JS dans un fichier un part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	jQuery("#add_chap").click(function(){
    	    $("#add_articles p").append("<textarea name='chapitre[]'></textarea>");
    	});
    Et comme ceci :
    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
    <?php
    session_start() ;
     
    require_once './includes/database_user.php';
    require_once './includes/functions/functions.php';
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    	<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<link href="./css/style.css" rel="stylesheet" media="all" type="text/css"  />
    		<script src="./javascript/ckeditor/ckeditor.js"></script>
    		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    		<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
    		<script src="./javascript/add_chapter.js"></script>
     
    		<title>Bifrost</title>
     
    	</head>
     
    	<body>
     
    <?php 
    		require_once './includes/menu.php';
    ?>
     
    		<div id="contener">
     
    		<!-- --------------------------------------------- -->    
     
    <?php 
    			require_once './includes/header.php';
    ?>
     
    		<!-- --------------------------------------------- --> 
    	<div id="corps">
    	    <div class="gris"></div>
     
    	<form method="post" action="news.php?action=insert" id="add_articles">
     
            <p>                                  
                <label for="title">Titre</label> : <input type="text" name="title" id="title" />
     
                <textarea class="ckeditor" name="content" id="content"></textarea>
     
            	<input type="button" value="Ajouter" id="add_chap" name="add_chap" />
            </p>
     
        </form>       
     
    	    <div style="clear:both"></div>     
    	</div>
    		<!-- --------------------------------------------- --> 
     
    <?php 
    			require_once './includes/footer.php';
    ?>
     
    		</div>
    	</body>
    </html>

    Mais pareil, impossible de cliquer sur le bouton!

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Vu dans la faq
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    jQuery(function($){
    // ICI ton code
    });
    Citation Envoyé par la FAQ
    Cette fonction anonyme sera exécutée dès que la structure du DOM de la page web aura été construite. Dans 98 % des cas, c'est le bon endroit pour vos appels de codes jQuery et vos instructions événementielles.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Ah, ça devait se traduire comme ça?

    J'attendrais de faire les cours de Javascript pour comprendre le tuto Jquery...

    Bref, merci bien, ça marche ENFIN!

    Il faut juste que je trouve comment tout récupérer correctement et les traiter.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    J'en profite vu que ça va avec mais au niveau de l'insertion de la textarea, le name et la class sont marqués mais il ne prend pas en compte le "ckeditor".

    C'est en rapport avec le fait que je l'insère en JS?

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    C'est en rapport avec le fait que je l'insère en JS?
    et surtout le fait que tu n'initialises pas l'élément ajouté comme étant un ckeditor.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    jQuery(function($){
    	jQuery("#add_chap").click(function(){
    		$("#add_articles p").append("<label for='title'>Titre</label> : <input type='text' name='title[]' /><br />");
    		$("#add_articles p").append("<textarea class='ckeditor' name='chapitre[]'></textarea><br />");
    	});
    });
    Je l'ai mis comme ça, oublié de montrer le code avant :/

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Après lecture, la seule chose que j'ai compris c'est que je devais appeler un autre fichier du dossier ckeditor...

    Je suis désolé mais encore une fois, je ne connais pas le Javascript plus que du bidouillage basique de scripts déjà faits.

    Mon code d'appel des scripts :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript" src="./javascript/ckeditor/ckeditor.js"></script>
    <script type="text/javascript" src="./javascript/ckeditor/adapters/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
    <script type="text/javascript" src="./javascript/add_chapter.js"></script>

    Et mon fichier add_chapter.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    jQuery(function($){
    	jQuery("#add_chap").click(function(){
    		$("#add_articles p").append("<label for='title'>Titre</label> : <input type='text' name='title[]' /><br />");
    		$("#add_articles p").append("<textarea class='ckeditor' name='chapitre[]'></textarea><br />");
    	});
    });

  15. #15
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Parce que tu crois qu'ajouter une class='ckeditor' suffit à la transformation de ta TEXTAREA en CKEditor instance?

    Lorsque ta page est chargée, que le DOM est prêt, alors CKEditor analyse les éléments du DOM et transforme les éléments qu'il y a à transformer et seulement ce qui existe.

    Lors de l'ajout, via un clic sur le BUTTON, tu crées un nouvel élément, qui donc n'existait pas au moment du "parsage de CKEditor".

    Pour prendre ne compte ton nouvel élément comme nouveau CKEditor il te faut le demander explicitement, et pour cela il existe la méthode .ckeditor().

    Il te faut donc écrire au minimum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $('#add_chap').click(function(){
      // création de l'élément
      $('#add_articles').append('<textarea id="editeur"></textarea>');
      // création d'une CKEditor instance
      $('#editeur').ckeditor();
    });

  16. #16
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Donc adapté pour mon besoin,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    jQuery(function($){
    	jQuery("#add_chap").click(function(){
    		$("#add_articles p").append("<label for='title'>Titre</label> : <input type='text' id='title[]'/><br />");
    		$("#add_articles p").append("<textarea id='chapitre[]'></textarea><br />");
    		$('#chapitre[]').ckeditor();
    	});
    });
    C'est bien cela?

    Pareil, il ne le prend pas.

    J'ai même tenté en rajoutant la class ckeditor au cas-où, mais pareil.

  17. #17
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    J'entrevois pas mal de soucis dans ce que tu essaies de faire.

    Une ID doIt UNIQUE dans la page, hors si tu continues à ajouter des TEXTAREAs avec la même ID cela va vite devenir la kata!!!

    jQuery m'aime pas le [], entre autres, dans les caractères utilisés pour les ID, il faut dans ce cas les échapper ID Selector (“#id”). Tu peux utiliser CKEDITOR.replace pour pallier à cela, mais gare aux IDs identiques.

    Tu peux également utiliser la syntaxe suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $('#add_articles').append('<textarea class="editeur"></textarea>');
    $('#add_articles').find( '.editeur').ckeditor();
    mais cela générera des IDs identiques.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Bon, je commence vraiment à être perdu avec ce jquery!

    Je vais changer de méthode et demander le nombre de chapitres avant la création de l'article.

    Merci quand même =)

  19. #19
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Pas nécessairement, tu peux gérer des IDs dynamiques.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Sachant que je ne pige absolument rien à tes messages au niveau javascript/jquery, je préfère passer sur une méthode plus simple et, un jour, revenir sur ça, quand je saurais le faire moi-même, que je comprendrais ce qu'est ce DOM ou encore comment marche le JS tout court =)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Glyphes et symboles non HTML de taille variable
    Par frmars dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 15/03/2010, 22h24
  2. Formulaire continu de taille variable
    Par docjo dans le forum IHM
    Réponses: 4
    Dernier message: 29/01/2009, 08h21
  3. [FLASH 8] Variables Flash dans formulaire html
    Par tarzanjane dans le forum Flash
    Réponses: 6
    Dernier message: 21/09/2006, 12h16
  4. Réponses: 1
    Dernier message: 14/09/2006, 10h53
  5. integrer une variable dans un formulaire html
    Par oops! dans le forum Langage
    Réponses: 3
    Dernier message: 08/09/2006, 19h48

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