Renvoi à la ligne dans un bouton submit [Résolu]

Signaler
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009
-
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009
-
Bonjour à tous !

Voici comment j'affiche mon texte dans mon bouton submit :

">

Sachant que $donnees[2] est le résultat d'une requete. Donc dans cet exemple comment puis-je faire pour aller à la ligne dans le bouton submit si ce qui est affiché par l'echo est trop long ?

Merci d'avance pour votre aide car là je suis dans le flou...

12 réponses

Messages postés
10
Date d'inscription
lundi 14 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2008

wordwrap=hard ou soft ou virtual
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
sinon tu a le meme chose en php, la fonction wordwrap
regarde du coté de php.net
http://php.net/wordwrap
tu aura toutes les infos relative à son usage

Tu n'a plus qu'a faire un wordwrap comme tu veux et comme séparateur tu met \n
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
nl2br remplace les \n par des
, un caractère du genre \n, \t, \r ne compte pas comme une valeur dans strlen, du coup
strlen ("\n") = 0 si je me trompe pas, mais strlen (nl2br ("\n")); = 6 (
)

tu fait

et dans ta réception tu fait

$Submit = $_POST['submit'];
$Submit = str_replace ("
", " ", $Submit);

et tu devrais retomber sur tes pattes
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
regarde dans le source la différence, peut-etre que c'est
au lieu de
, ou un truc du genre.
Regarde dans le source, tu y verra la solution
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009

Merci mais comment je peux l'employer dans mon exemple ?
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009

Merci beaucoup ça marche !!
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009

Bon ça marche mais j'ai un problème avec cette fonction...

En effet à la base ce bouton submit renvoyait la valeur du bouton et dans une autre page php, je comparais cette valeur à une autre aussi issue de la base de données... mais voila avec wordwrap ca saccage tout...

Je m'explique en prenant un exemple :


Si je veux afficher "ma belle maison dans mon bouton" : j'applique wordwrap et du coup j'obtiens :


ma belle


maison


Or si je veux comparez ce résultat à "ma belle maison" et bien le php me dit que ces deux chaines ne sont pas égales... Y a t il un moyen, une fois avoir récupéré la valeur de ma chaine sur la deuxième page php, de lui redonner sa forme initiale ?

Merci de votre aide !


 
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
et bien wordwrap (en php) remplace les espaces par le caractère voulu (\n en l'occurrence)
Donc tu n'a qu'a faire l'inverse (str_replace ("\n", ' ', $tachaine);) et c'est bon ! :)
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009

Voici le test que j'ai fait :

$toto = wordwrap("la maison de toto",9);
$toto1 = nl2br ("$toto");


echo $toto1;
$nombre1=strlen($toto1);
echo $nombre1;


$toto2=str_replace("\n",'',$toto1);
echo $toto2;
$nombre2=strlen($toto2);
echo $nombre2;

J'ai mis des strlen pour voir si je retrouvais le nombre de caracteres de la chaine initiale... et bien non...
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009

Ta solution ne marche pas... Je ne sais pas pourquoi, mais ma chaine modifiée compte un caractère en plus quand je fais un strlen qu'à l'origine...

Alors qu'avec un echo je ne vois pas la différence...
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009

Ecoute je suis un peu perdu... J'ai fais plusieurs tests...

Je me rends compte que lorsque la chaine est écrite sur deux lignes, après quand je la remets sur une avec str_replace, elle compte un caractère en plus qu'au début alors que lorsque je fais l'echo, les deux chaines sont strictement identiques.
Quand la chaine est ecrite sur 3 lignes, là il y a 2 caractères supplémentaires...

Ce qui voudrait dire que le caractère séparateur compte double...Par exemple :

la maison de toto est belle     27

Ensuite on modifie avec wordwrap
la maison
de toto
est belle

Après on fait le str_replace
la maison_de toto_est belle   et la ca me donne 29 caractères

J'ai mis des _ pour te montrer les espaces qui comptes à mon avis deux caractères...

Voila, je sais pas si tu as deja eu connaissance de ce problème mais là je suis perdu.


 
Messages postés
67
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
22 mars 2009

Pour ton info j'ai trouvé une solution...

$toto = preg_replace('/\s{2,}/', ' ', $toto);

Je l'ai chopé sur un site web. Ca marche mais j'ai pas compris ce que ca faisait... En tout cas merci beaucoup pour ton aide !!