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 :

association de donnee tres longue


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut association de donnee tres longue
    Bonjour, j'ai un petit soucis de javascript du à un mélange avec du php.

    Je rempli un tableau javascript avec des donnees qui proviennent d'une base de donnee MySQL. Ces donnees je les recupere via le php. Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?
    	$query = "SELECT IDAgenda, Date, Titre, Explication FROM agenda";	
    	if(!($rs=mysql_query($query,$cn)))
    		die("Erreur requete");
     
    	while($row = mysql_fetch_row($rs))
    	{?>
    		g_TableauDateAgenda[<?echo $row[0];?>]= "<?echo $row[1];?>";
    		g_TableauTitreAgenda[<?echo $row[0];?>] = "<?echo $row[2];?>";
    		g_TableauExplicationAgenda[<?echo $row[0];?>] = "<?echo $row[3];?>";	
            <?}?>
    La ligne qui me cause problème est la dernière. En effet si dans la BD il y a un ENTER, alors la donnee revient dans le javascript avec un ENTER ce qui fait que l'association de la donnee au tableau se passe très mal car ca fait ceci (un saut de ligne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
             g_TableauDateAgenda[11]= "10 / 12 / 2005";
             g_TableauTitreAgenda[11] = "Le Noël de ....";
             g_TableauExplicationAgenda[11] = "Le samedi 10 décembre 2005, dès 16h, viens nous rejoindre avec tes parents !
    Au programme :
    Pour les plus grands :
    Comment puis je forcer que toute la donnee (de "Le samedi "jusque " les plus grands") doit entrer dans le tableau???

    Merci

    Pitch

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    pas de retour ligne comme ça dans une variable ... mets des \n ou des '\<\/br\>'
    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 éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Par défaut
    Je pense que c'est plutôt du coté serveur (donc de php) que tu devrais voir... Un test sur la chaîne de caractère contenu dans ton recordset avec éventuellement un remplacement (remplacer 'Enter' par '\n') serait à mon avis la meilleure solution

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ceci ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script>
    var truc = "mon papa 
    et ma maman 
    vont au marché !";
     
    alert(truc);
    </script>
    Alors que ceci marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script>
    var truc = "mon papa \
    et ma maman \
    vont au marché !";
     
    alert(truc);
    </script>
    => donc il te suffit de remplacer des \n (ou \r\n ?) dans ta variable par le caractère \
    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace('/\\n/', '\', $row[3]);
    (pas du tout testé)

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <pre><?php
     
    $var = "mon papa 
    et ma maman 
    vont au marché !";
     
    echo $var;
    echo "<hr>";
    echo preg_replace("(\r\n|\n|\r)", "\\\n", $var); 
    ?>
    affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mon papa 
    et ma maman 
    vont au marché !
    ------------
    mon papa \
    et ma maman \
    vont au marché !

  6. #6
    Expert confirmé

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par Mr N.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace('/\\n/', '\', $row[3]);
    (pas du tout testé)
    Euh, plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace('/\n/', '\\/n', $row[3]);
    Mais je connais pas trop les regexp en PHP

  7. #7
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par denisC
    Citation Envoyé par Mr N.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace('/\\n/', '\', $row[3]);
    (pas du tout testé)
    Euh, plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace('/\n/', '\\/n', $row[3]);
    Mais je connais pas trop les regexp en PHP
    Ouais ca marchait pas du tout. Néanmoins /n est différent \n, il doit y avoir un soucis dans ta proposition.

    De toute facon ceci marche : (cf post precedent)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo preg_replace("(\r\n|\n|\r)", "\\\n", $var);

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Ca a y est je l'ai :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?
    	$query = "SELECT IDAgenda, Date, Titre, Explication FROM agenda";	
    	if(!($rs=mysql_query($query,$cn)))
    		die("Erreur requete");
     
    	while($row = mysql_fetch_row($rs))
    	{?>
    		g_TableauDateAgenda[<?echo $row[0];?>]= "<?echo $row[1];?>";
    		g_TableauTitreAgenda[<?echo $row[0];?>] = "<?echo $row[2];?>";
    		g_TableauExplicationAgenda[<?echo $row[0];?>] = "<? $temp=nl2br($row[3]); echo str_replace("<br />",'\\',$temp);?>";
    	<?}?>
    Merci Mr N pour le '\' car je ne savais pas que ca voulais dire suite a la ligne suivante :-)

    Ha oui je ne parvenais pas a trouver les \n alors je les ai converti en <br /> et apres je converti les <br /> en '\' et ca fonctionne :-)

    Merci

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Et encore mieux, pour que l'affectation se passe correctement et que les ENTER ne disparaissent pas :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while($row = mysql_fetch_row($rs))
    	{?>
    		g_TableauDateAgenda[<?echo $row[0];?>]= "<?echo $row[1];?>";
    		g_TableauTitreAgenda[<?echo $row[0];?>] = "<?echo $row[2];?>";
    		g_TableauExplicationAgenda[<?echo $row[0];?>] = "<? $temp=nl2br($row[3]); echo str_replace("<br />",'\n\\',$temp);?>";
    	<?}?>

  10. #10
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    \n\\ ??? je doute que ca marche !

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Hehe je suis assez etonne aussi mais pourtant ca fonctionne :-)

  12. #12
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ca me turlupine, tu pourrais me montrer le javascript que ca produit ??

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    g_TableauDateAgenda[11]= "10 / 12 / 2005";
    		g_TableauTitreAgenda[11] = "Le Noël de ....";
    		g_TableauExplicationAgenda[11] = "Le samedi 10 décembre 2005, dès 16h, viens nous rejoindre avec tes parents !\n\
    \n\
    <b>Au programme :</b>\n\
    \n\
    <u>Pour les plus grands :</u>\n\
    - stands de dégustation de produits fins et de saison,\n\
    - ......";
    Ce qui est bien agreable car dans une textearea ma donnee se met correctement.

    Et si je veux l'afficher dans une page normal il suffit que je convertise les \n en <br>

    Moi aussi ca me semble bizar comme code mais voila.....

  14. #14
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Haaaa mais si tu me cache aussi des trucs... !
    Donc c'est bien ce que je pensais et effectivement si tu mets dans le textearea tu en auras besoin. Au temps pour moi.

  15. #15
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Ho la veuillez excuser mon erreur lol :-)

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

Discussions similaires

  1. Tres longue variable
    Par elephant13 dans le forum C#
    Réponses: 9
    Dernier message: 07/10/2007, 14h48
  2. Association Attribut = Donnee
    Par Paxaranne dans le forum SQL
    Réponses: 5
    Dernier message: 17/07/2007, 20h42
  3. [VBA-E] Macro tres longue
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 28/10/2006, 21h10
  4. Association avec données réalisant 2e association
    Par Matth_S dans le forum Schéma
    Réponses: 4
    Dernier message: 10/02/2006, 12h55
  5. [Compilation] Chaine string Tres tres longues
    Par Clorish dans le forum Langage
    Réponses: 9
    Dernier message: 20/07/2005, 11h20

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