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 :

Impossible de récupérer le contenu d'un textarea


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Par défaut Impossible de récupérer le contenu d'un textarea
    Bonjour,

    Je reviens avec un nouveau problème. J'ai fait des recherches, essayé plusieurs méthode comme "find" par exemple, mais impossible de récupérer le contenu du textarea. Aucune erreur console ni réseau. Le système fonctionne niquel sur les input.
    Le alert reste vide et idem en base de données, seul le champs qui correspond au textarea reste vide.

    J'utilise ckeditor, peut être que ça vient de là.

    Le code que j'utilise en jquery
    Code js : 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
    $('#ajtInf').submit(function(event) {
        event.preventDefault();
        var ref = $('#ref').val(),
         type = $('#type').val(),
         texte = $(this).find('#editor1');
        // Alert pour test du textarea
        alert(texte);
     $.ajax({
      url : 'ajtInf.php',
      type : 'POST',
      data : 'ref=' + ref + '&type=' + type + '&editor=' + texte,
      dataType : 'html',
     });
     $.ajax({
      url : 'actInf.php',
      type : 'POST',
      data : 'ref=' + ref,
      dataType : 'html',
      success : function(code_html, statut){
       $('#'+ref).html(code_html);
      },
     });
     $('#infos').css('display','none');
    });

    Le textarea modifié par ckeditor à l'id "editor1". En dehors de ça c'est un formulaire tout ce qu'il y a de plus banal et dont la récupération ne pose absolument aucun problème sur les autres champs.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    En utilisant .find() tu obtiens l’élément textarea qui est un objet DOM (encapsulé dans un objet jQuery). Pour avoir sa valeur il faut ensuite appeler .val().
    The .val() method is primarily used to get the values of form elements such as input, select and textarea. When called on an empty collection, it returns undefined.
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    texte = $(this).find('#editor1').val();

    Note : à la place de alert, utilise console.log.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre averti
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Par défaut
    Déjà passé par cette étape, mais toujours rien.

  4. #4
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Alors c'est que l'erreur est ailleurs,
    _ est-ce ton id est bien unique ?
    _ est-ce que utilise bien le mode strict ?
    _ pourquoi tes 2 appels ajax on tous deux une virgule en trop ? ( lignes 18 et 30)
    _ pourquoi ton premier appel ajax n'utilise pas de callback ? (ligne 13)
    _ pourquoi tu fais 2 appels ajax en même temps dans ton submit ? (et quel est l’intérêt ? )
    _ pourquoi tu utilises un formulaire alors qu’a priori tu utilise de l'ajax pour envoyer tes données ? ( => donc le formulaire ne sert à rien ? )

    Le code que tu nous montre est beaucoup trop succin pour qu'on puisse se rendre compte de quoi que ce soit.

    ton code, juste indenté proprement, et avec ses erreurs :
    Code JavaScript : 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
    $('#ajtInf')
    .submit(function(event)
    {
      event.preventDefault();
      var
        ref   = $('#ref').val(),
        type  = $('#type').val(),
        texte = $(this).find('#editor1')
      ;
      // Alert pour test du textarea
      console.log(texte);
     
      $.ajax(
      {
        url      : 'ajtInf.php',
        type     : 'POST',
        data     : 'ref=' + ref + '&type=' + type + '&editor=' + texte,
        dataType : 'html',
      });
     
      $.ajax(
      {
        url      : 'actInf.php',
        type     : 'POST',
        data     : 'ref=' + ref,
        dataType : 'html',
        success  : function(code_html, statut)
        {
          $('#'+ref).html(code_html);
        },
      });
      $('#infos').css('display','none');
    });

  5. #5
    Membre averti
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Par défaut
    Bonjour,


    • Oui l'id est unique, et instauré par ckeditor (comme précisé dès le premier message), pas par moi.
    • Sachant que le mode strict, à ce que j'en ai compris, n'est pas supporté par tout les navigateurs, non, je ne l'utilise pas.
    • Pour les virgules, oublis de ma part suite à des tests, mais ça n'empêche pas le fonctionnement puisque, comme je l'ai précisé, seul le textarea est touché.
    • Pas besoin d'affiché quoi que ce soit puisque, encore une fois, comme précisé, ça envois des informations à un fichier php pour enregistrer des infos en BDD.
    • Pourquoi deux appels ? Tout simplement parce qu'ils n'appellent pas le même fichier distant vu que leur utilité n'est pas la même. Le deuxième sert à actualiser une information précise en fonction de ce que a été rajouter précédemment.
    • Si j'utilise un formulaire c'est que j'en ai besoin, le fait que ça passe en ajax au lieu de façon "standard" est simplement personnel et lié au fonctionnement même du site.


    Le code que je montre est loin d'être succin. Il montre tout et je vais pas rajouter du code inutile, et qui alourdirai le bordel, pour te faire plaisirs. Puisque le reste n'est qu'un formulaire html et que j'ai donné les infos, à savoir l'id du "rebelle".
    Je sais que ça ne vient pas de php puisque j'ai fait le test avec des infos en dur (sans variables POST) et il fonctionne très bien.

    sauf si tu aimes jouer aux devinettes : on te propose une correction possible, puis tu réponds
    si c'est oui, on à gagné ( mais quoi ?)
    si c'est non, on recommence une nouvelle question et ainsi de suite ?
    Là par contre il va falloir que tu me dises de quoi tu parle. J'ai apporté tout les détails du problème dès le premier message.
    Et à la solution proposé, je dis que je l'ai déjà essayé et que ça ne fonctionne pas.

    J'ai peut être un problème de code, mais toi tu ne sais tout simplement pas lire.

    Pour ce qui est de l'indentation, je préfère très largement la mienne, hors ré-indentation suite au copier-coller sur le forum. La tienne je la trouve extrêmement mauvaise, illisible et illogique.

    Désolé, mais quand je reçois une réponse agressive je répond sur le même ton. Surtout quand on ne peut se le permettre.
    Tu ne donne pas de solution, juste des critiques à peine masqués. En prétextant que je ne donne pas toutes les infos, ce qui est faux puisque j'ai exposé le problème avec le moindre détails.

    Edit : C'est confirmé, c'est bien ckeditor qui bloque. Je l'ai désactivé et le console.log me retourne bien le contenu du textarea sans rien changer d'autre.
    Donc, psychadelic, pour rester sur le même ton que toi, redescend de ton pied d'estale et patiente que ta tête, ou tes chevilles ou les deux qui sait, dégonfle(nt).

    Bon en dehors de ce personnage très pédant qu'est psychadelic, est ce que quelqu'un connait un bon éditeur, comme celui de Développez par exemple, pour faire ce que j'ai a faire sans qu'il ne me bloque en JS ? Si j'ai pas le choix je ferai du html/php à 100% pour cette partie, mais pour la logique d'utilisation du site, j'aimerai bien pouvoir le faire en ajax.

  6. #6
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Citation Envoyé par Maxime.mt Voir le message
    [*]Sachant que le mode strict, à ce que j'en ai compris, n'est pas supporté par tout les navigateurs, non, je ne l'utilise pas.
    le mode strict sert surtout à s'assurer que son code est cohérent, c'est un outil utile pour deboguer son code, tu peux le retirer lors du passage en prod. Cela t'aurais possiblement permis de remonter un message d'erreur dans le cas présent.

    Et au moins mon message t'a réveillé pour aller chercher la raison ailleurs, comme je te l'ai écrit.

    Sinon, désolé de m'être énervé (je réagis souvent comme ça quand on tourne en rond) , et j'utilise MarkDown, parce que tous les éditeurs de code soit disant wysiwyg deviennent vite obsolète sans jamais réussir à être vraiment fiable.

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