Renvoi à la ligne dans un bouton submit

Résolu
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009 - 31 janv. 2008 à 11:55
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009 - 1 févr. 2008 à 10:00
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

the_number_9 Messages postés 10 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 31 janvier 2008
31 janv. 2008 à 13:50
wordwrap=hard ou soft ou virtual
3
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
31 janv. 2008 à 14:06
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
3
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
31 janv. 2008 à 22:02
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
3
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
31 janv. 2008 à 23:20
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
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009
31 janv. 2008 à 14:04
Merci mais comment je peux l'employer dans mon exemple ?
0
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009
31 janv. 2008 à 14:49
Merci beaucoup ça marche !!
0
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009
31 janv. 2008 à 16:48
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 !


 
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
31 janv. 2008 à 20:03
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 ! :)
0
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009
31 janv. 2008 à 20:14
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...
0
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009
31 janv. 2008 à 23:17
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...
0
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009
1 févr. 2008 à 09:36
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.


 
0
wadpap13 Messages postés 67 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 22 mars 2009
1 févr. 2008 à 10:00
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 !!
0
Rejoignez-nous