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 :

Textarea, javascript et limite de caract�res


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par d�faut Textarea, javascript et limite de caract�res
    Bonjour a tous,


    J'ai un petit souci a vous exposer:

    J'ai cr�� une petite admin en PHP avec identifiants et donc session

    J'ai un petit formulaire avec un texteara

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    echo 'Commentaire<br>';
    $res_p = mysql_query("SELECT * FROM `table` where .................................");
    while($prt = mysql_fetch_array($res_p, MYSQL_ASSOC)){$text_p=$prt['text']; $text_p = str_replace(array('<br>'), array("\n" ), $text_p);$text_p = stripslashes($text_p);}
    <textarea style="width:100%; height:300px" id="com_pret" name="com" onblur="envoi_com(\'com\')">'.$text_p.'</textarea>

    Ensuite la fonction envoi_com() recupere l'ID de mon textarea pour la traiter en Javascript/Ajax s

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function envoi_com (idA) {
    idC= 'S'+idA;
    var idC = document.getElementById(idA).value;
    while(idC.indexOf("\n")>0){idC = idC.replace("\n","<br>");}
    var xhr_object = null;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else {alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return;}
    xhr_object.open("POST", "sauve.php?toto=<?php echo $toto;?>&ong=com&"+idA+"="+idC, true);
    xhr_object.onreadystatechange = function() {if(xhr_object.readyState == 4) {document.getElementById("sauve_com").innerHTML = xhr_object.responseText;}}
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    var data = "toto=<?php echo $toto;?>&ong=com&"+idA+"="+idC;
    xhr_object.send(data);
    }
    Le fichier sauve.php contient bien les include de session pas de souci.

    Je saisie un commentaire avec moins de 2804 caract�re et tout se passe bien

    Je saisie un commentaire de plus de 2804 caract�re et la un truc bizarre se produit:
    Le commentaire arrive bien jusqu'au fichier sauve.php, il est en bien trait� par le php du fichier et bien sauvegard� dans la BDD SQL
    MAIS JE PERDS LA CONNEXION DONC LES SESSIONS

    Alors qu'avec moins de 2804 caract�res saisie la session est conserv�e.

    Avez vous une id�e de de piste de reflexion, s'il vous plait.

    Merci milles fois a tout ceux qui auront le temps de me lire.

    Olivier

  2. #2
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Pourrait-on avoir du JavaScript et du HTML et non du PHP*?

    si tu avais ouvert ton code dans le navigateur, tu aurais compris d'o� vient l'erreur

    Tu places tes donn�es dans l'URL et dans data.
    Or la taille d'une URL est limit�e
    A+JYT

  3. #3
    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
    Je vais �tre un peu hors sujet mais voil� : j'ai l'impression que la communaut� JavaScript a encore beaucoup � apprendre quant au signalement des erreurs � l'utilisateur.

    Sc�nario : ma grand-m�re (ou la grand-m�re de qui tu veux) navigue sur ton site et re�oit le message suivant :
    Votre navigateur ne supporte pas les objets XMLHTTPRequest...
    �a lui fait une belle jambe. Que doit-elle comprendre ? Que doit-elle faire ? Elle est livr�e � elle-m�me. Il y a fort � parier qu'elle va quitter ton site.

    Dans ce genre de cas il y a deux approches :
    � soit tu expliques clairement ce que l'utilisateur peut faire pour utiliser ton site convenablement ;
    � soit tu fais en sorte que ton site se d�grade gracieusement pour continuer � fonctionner avec des fonctionnalit�s r�duites.

    Pour moi, la premi�re approche est la plus difficile. Vraisemblablement, tu pourrais recommander � l'utilisateur de mettre � jour/changer de navigateur. Mais comment le faire avec tact, concision et clart� ? Comment faire en sorte que ceux qui ne peuvent pas changer de navigateur (par exemple sur leur lieu de travail) ne se sentent exclus ?
    De plus, certains ergonomes estiment que tu n'as pas � imposer � l'utilisateur la fa�on dont il visite ton site.

    La seconde approche est tout � fait r�alisable quand on parle d'Ajax, car toute fonctionnalit� de site Web mise en �uvre avec Ajax peut �tre mise en �uvre minimalement sans Ajax, par des liens et des formulaires classiques.
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par d�faut
    Bonsoir,

    Je vous remercie a tous les deux pour vos r�ponses, bien que je ne saisisse pas le sens de toutes .

    En clair, �videmment j'ai zapp� que dans une url la taille de la chaine de caract�re etait limit�, donc le javascript, enfin l'ajax me limite (DATA), enfin l'URL, on s'est compris ...

    Par contre si je passe par un formulaire en POST je ne suis pas limit�.. or justement je voulais eviter le rafraichissement de la page.. pffff

    Donc je n'ai pas le choix.

    Merci encore !

    voir info ici : http://support.microsoft.com/kb/208427


    P.S je ne ferme pas ce topic car si il existe une solution miracle je suis toujours preneur

  5. #5
    Expert confirm�

    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par d�faut
    sekaijin t'a d�j� r�pondu
    Pourquoi veux-tu absolument passer tes variables dans l'url (notamment celles qui posent des probl�mes de taille) puisque tu les passe aussi dans data ? En d'autres termes supprime les variables de la ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xhr_object.open("POST", "sauve.php?toto=<?php echo $toto;?>&ong=com&"+idA+"="+idC, true);
    ou garde en quelques unes mais pas besoin de faire de doublons avec celles que tu passe dans le send.

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par d�faut
    Je suis d�sol�s, dans ce cas, je n'ai rien compris a ce que j'ai cod� alors.

    Je pensais qu'il fallait que je tape les deux fonctions

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xhr_object.open("POST", "sauve.php?toto=<?php echo $toto;?>&ong=com&"+idA+"="+idC, true);
    et

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var data = "toto=<?php echo $toto;?>&ong=com&"+idA+"="+idC;
    Pour que la fonction donne le r�sultat, car tous les exemples donn�s se traduisent avec ces deux fonctions.

    Si je vous suis, je peux simplement mettre les infos dans le data et je n'aurai plus le probleme de limitation du a la taille max de la chaine dans une URL ?

  7. #7
    Expert confirm�

    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par d�faut
    Et t'as pas eu la curiosit� d'essayer ?

    Quand tu fais xhr_object.open("POST", "sauve.php", true);, le second param�tre indique la destination c'est � dire l'url exactement comme dans l'attribut action d'un formulaire post. En compl�ment des valeurs que tu passe dans le post tu peux mettre des valeurs "get" dans cette adresse (comme tu le faisais avant), mais le plus souvent on met tout dans le post (surtout quand on veut des url courtes...)

  8. #8
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par d�faut
    Non j'avoue ne pas avoir pens� a tester, et je ne comprends pas pourquoi ca devrait fonctionner, puisque meme avec le data, les infos passent qd meme dans l'URL ???

    Ma petite admin fait appel a bcp de fonctions et quand un script fonctionne, je ne le touche plus, j'ai deja du mal a rendre compatible le PHP, le JAVASCRIPT, mes bases SQL, l'AJAX, les JQUERY qui des fois sont incompatibles.. bref.. tout ce que vous rencontrer tous les jours dans vos scripts .. mais je ne suis qu'amateur :-D alors c'est seulement en poussant a bout un script que je m'apercois que je dois le modifier comme ici la limitation de caracteres.

    Je vais tester en ne mettant mes var uniquement dans le data et voir si je suis limit� a 2048 aussi.


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function envoi_com (idA) {
    idC= 'S'+idA;
    var idC = document.getElementById(idA).value;
    while(idC.indexOf("\n")>0){idC = idC.replace("\n","<br>");}
    var xhr_object = null;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else {alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return;}
    xhr_object.open("POST", "sauve.php", true);
    xhr_object.onreadystatechange = function() {if(xhr_object.readyState == 4) {document.getElementById("sauve_com").innerHTML = xhr_object.responseText;}}
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    var data = "toto=<?php echo $toto;?>&ong=com&"+idA+"="+idC;
    xhr_object.send(data);
    }

Discussions similaires

  1. Limite Textarea, Ligne et Nombre de caract�res par ligne
    Par michelS dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 10/11/2010, 14h00
  2. [JTextField]limiter les caract�res ?
    Par Baptiste Wicht dans le forum AWT/Swing
    R�ponses: 8
    Dernier message: 27/12/2005, 12h12
  3. R�ponses: 1
    Dernier message: 18/08/2005, 15h11
  4. limite de caract�re sur un type="texte"
    Par auduma dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 2
    Dernier message: 18/03/2005, 14h06
  5. Varchar2 limit� � 256 caract�res (SQLLoader, 9i)
    Par nuke_y dans le forum SQL*Loader
    R�ponses: 2
    Dernier message: 09/11/2004, 12h20

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