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

JavaScript Discussion :

Problème de textarea avec XMLHTTPRequest !


Sujet :

JavaScript

  1. #1
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut Problème de textarea avec XMLHTTPRequest !
    Bonjour à tous !

    J'urilise la techno XMLHTTPRequest pour l'affichage de mes formulaires.
    Jusqu'à maintenant je n'avais pas de problème mais depuis que j'ai inséré des éléments TEXTAREA dans mon formulaire cela ne fonctionne plus.

    Voilà le problème :
    Dès que je met un retour chariot dans mon textarea cela ne marche plus.

    Mon fonctionnement :
    1. J'ai une page avec un formulaire d'enregistrement avec divers éléments (dont textarea). Ces éléments sont déjà renseignés par XMLHTTPRequest via des requêtes dans ma base de données.
    2. Je modifie mes éléments...en faisant un retour chariot dans mon textarea par exemple.
    3. J'enregistre mes valeurs dans une base de données en appellant un script php.
    4. Je rappelle ma page avec mon formulaire renseigné -> j'ai une erreur javascript lié au retour chariot du textarea.

    Est-ce que je dois appeler des fonctions php de traitement de caractères ?? J'en ai essayé pleins mais ça ne fonctionne pas !

    Merci de votre aide.

    Liv

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Essaye déjà encode/decode en javascript pour éviter de passer un retour chariot dans ton URL.
    Après il faudra effectivement utiliser des fonctions PHP (htmml_escape ou qqch de ce genre).

    Est-ce que l'insertion en BD d'un textarea avec retour chariot fonctionne?

  3. #3
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    Oui l'insertion en base de données marche avec le retour chariot.
    J'essaie tes propositions et je te tiens au courant.

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    deja, utilises tu la reponse xml ou text ?

  5. #5
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    J'utilise responseText.
    Tu crois que ça vient de là?

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    qu'est ce que tu as comme message d'erreur ?

    sinon le mieux a faire, c est de tester sous firefox avec l'extension firebug qui te permettra de voir ta reponse

  7. #7
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    Voici ma fonction JS

    function ModifImage(id,type)
    {
    window.document.getElementById("image_detail").style.display = "block";

    var xhr_object = null;
    if(window.XMLHttpRequest) // Firefox
    xhr_object = new XMLHttpRequest();

    else if(window.ActiveXObject) // Internet Explorer
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");

    else
    { // XMLHttpRequest non supporté par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return;
    }

    xhr_object.open("GET", "image_request.php?mode=modif&id="+id, true);
    xhr_object.onreadystatechange =
    function()
    {
    if(xhr_object.readyState == 4)
    eval(xhr_object.responseText);
    }

    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //var data = "family="+escape(l1.options[index].value)+"&form="+f.name+"&select=fournisseur";
    var data = "bla";
    xhr_object.send(data);
    }

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben tu fais un eval du responseText, si il y a le moindre caractère non javascript ca va forcement planter, fais toi un alert de ton responseText pour le voir.

  9. #9
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    Ok...voici ce qui se passe.

    Pour te résumer ce que je fais...

    En fait le champ "commentaire" de mon formulaire doit s'afficher dans mon textarea.
    Si il contiend des \n, pour qu'il s'affiche dans mon textarea je fais la manip suivante en php (mon fichier faisant les requêtes à la base, fournissant et insérant les données à mon fomulaire en javascript via XMLHTTPRequest)

    $commentaire = str_replace("\n"," \\n", $commentaire);

    Si je ne fais pas ça j'ai une erreur javascript...et ensuite je l'affiche dans mon formulaire via XMLHTTPRequest.

    echo "window.document.forms['monform'].elements['dCommentaire'].value ='".$commentaire."';";

    Ensuite, j'enregistre les valeurs dans ma base...sans traitement particulier et c'est après que ça déconne.
    Je regarde dans ma base la valeurs enregistrée et pas de problème, il y a bien mon texte en bonne et due forme...mais lorsque j'essaie de le réafficher j'ai une erreur javascript.

    Je suis obligé de reformater le texte dans ma base pour que cela re-fonctionne.

    ***************************************************

    J'ai fais un alert de mon respondText...si je ne fais pas le str_replace j'ai une erreur javascript et donc pas d'alert.
    Si je le fais ça marche MAIS...une fois que je valide mon formulaire la donnée correspondant au champ ne s'affichera plus dans mon formulaire...erreur javascript à la clé (unterminated string literal). Elle est toutefois accessible au niveau de la base de données et le formatage semble correct.

    C'est bizarre.
    Peut-être devrais-je abandonner mon str_replace et effectuer les traitements de chaine dans ma fonction js que tu as vu plus haut.

  10. #10
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    En rapport à ce que tu m'as dis...si je ne fais pas un eval de xhr_object.responseText ça ne marche pas...
    Lorsque je fais l'alert je vois bien le caractère \n apparaître...seulement parceque j'ai fais le str_replace avant, dans mon fichier php.

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    t es allé voir directement dans ta base a quoi ca ressemble ?

  12. #12
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    Oui ! Le formatage a l'air correct. Il y a bien le retour chariot. Ca apparaît sous cette forme:

    toto
    titi

    Mais mon je n'arrive plus a renseigner mon formulaire. Toutefois, si je fais un enregistrement de la valeur via mon interface d'administration de base de données (qui est pgadmin, pour postgresql), il reformate la valeur et ça refonctionne.

    Je crois que le problème viens du fait que je suis obligé de faire un str_replace de \n par \\n pour rendre l'affichage de la valeur possible dans mon formulaire.
    Mon intuition me dit que lorsque je valide mon formulaire un truc bisarre doit se passer.

  13. #13
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    t as tenté un replace en javascript de \\n en \n ?

  14. #14
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    Non pas encore...je vais essayer.
    Il y a une fonction qui existe pour ça ou il faut la faire ?

  15. #15
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr_object.responseText.replace("\\\\n","\\n")
    un truc dans le genre

  16. #16
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    En fait je viens de me rendre compte que ça n'a rien a voir avec le XMLHTTPRequest.

    Une fois mes valeurs remplies dynamiquement par XMLHTTPRequest, je fais un alert et j'ai un bon retour des valeurs.
    J'ai essayé à la validation de mon formulaire de récupérer les valeurs via javascript et pas de problème.

    Par contre, à la validation de mon formulaire j'appelle un script php chargé d'enregistrer les valeurs dans ma base...et là avant de faire quoi que se soit je fais un alert et comme par hasard il ne marche pas !

    Alors...je ne vois qu'une seule chose...si l'erreur s'effectue pendant le transfert de mon formulaire à mon script php c'est le serveur web qui est à la ramasse ! Je pense...

  17. #17
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    euh tu fais un alert en php

  18. #18
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    Nan nan t'inquiète...

    echo "<script language=\"JavaScript\">
    alert('$commentaire');
    </script>";

  19. #19
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    et si tu fais un var_dump en php ?

  20. #20
    liv
    liv est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Points : 41
    Points
    41
    Par défaut
    Il m'affiche string(15) "dfgh fgh sdfg"
    Les espaces représentant les \n apparemment.

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

Discussions similaires

  1. [AJAX] XMLHttpRequest
    Par chafik_si3 dans le forum AJAX
    Réponses: 2
    Dernier message: 11/05/2009, 11h54
  2. [AJAX] XMLHttpRequest sous internet exploreur 7
    Par dallas62 dans le forum AJAX
    Réponses: 19
    Dernier message: 09/05/2009, 01h50
  3. [AJAX] Utilisation XMLHttpRequest
    Par DJERO77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/08/2007, 10h27
  4. Problème d'envoi d'un formulaire avec xmlhttprequest
    Par lecra dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/10/2006, 17h35
  5. problème upload avec XMLHttpRequest
    Par alexmorel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/12/2005, 17h36

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