[résolu] strtok, ou comment prendre ce qu'il ya apres un espace

strtok, ou comment prendre ce qu'il ya apres un espace [résolu] - PHP - Programmation

Marsh Posté le 17-03-2006 à 14:58:09    

Bonjour,
je propose a l'utilisateur de selectioné un contenu voici l'affichage de ce dernier:
 

Code :
  1. $libelle2=mysql_query("SELECT libelle_contenu, num_contenu
  2.  FROM contenu " );
  3.   echo("<option></option>" );
  4.    while ($liste2=mysql_fetch_array($libelle2))
  5.    {
  6.    echo("<option>".$liste2[1].'  '.$liste2[0]."</option>" );
  7.    }


Donc ici l'affichage se fait comme ca "2 texte" soit 2 qui represente le numero de contenu et texte le titre du contenu
moi je veut recuperer que le texte.
jai essayer d'utiliser strtok comme ceci
 

Code :
  1. $liste_contenu=$_POST['liste_contenu']; //je recupere que le contenu pas le numero je divise le contenu en 2
  2.         $contenu_selectione=strtok($liste_contenu," " );
  3.          while ($contenu_selectione !== false)
  4.          {
  5.          echo "Mot = $contenu_selectione<br />";
  6.          $contenu_selectione = strtok(" " );
  7.          }


voila le resultat
 
mot: 2
mot: texte
 
Alors que je voudrait recuperer que ce qui se trouve apres le premier espace ( au cas ou texte serait lui meme former d'espace
 
nb :
- la premiere partie (2) peut etre sous la forme de : 2-01
- la deuxieme parie (texte) peut etre sous la foreme de : texte texte texte  
 
 
Merci


Message édité par eagle84 le 17-03-2006 à 15:49:25

---------------
Feed-Back
Reply

Marsh Posté le 17-03-2006 à 14:58:09   

Reply

Marsh Posté le 17-03-2006 à 15:05:02    

Bonjour,
 
Regarde plutôt du coté de strpos qui devrait convenir à ce que tu cherches
 
Pierre

Reply

Marsh Posté le 17-03-2006 à 15:33:12    

Tu pourrais tout simplement faire ca :
 

Code :
  1. while ($liste2=mysql_fetch_array($libelle2)) {               
  2.    echo('<option value="'.$liste2[0].'">'.$liste2[1].'  '.$liste2[0]."</option>" );
  3. }


 
Ce qui evite que la valeur de ton option (value="" ) ne soit initialisee par defaut
avec le contenu de ton element (<option>contenu</option> ).
 
Tu pourra donc directement recuperer ton texte dans $_POST['liste_contenu'].

Reply

Marsh Posté le 17-03-2006 à 15:34:30    

salut
merci pour ta reponse, le probleme c'est que strpos me retourne la position est pas le caractére ou la chaine de caractere (texte) qu'il ya aprés


---------------
Feed-Back
Reply

Marsh Posté le 17-03-2006 à 15:37:53    

Dans le cas de cette solution, il faut bien faire attention au caractères présent dans le value et qui pourrait exploser le html.
 
Sinon le plus simple, si l'on va dans la modif de code est d'attribuer num_contenu à chaque value

Code :
  1. while ($liste2=mysql_fetch_array($libelle2)) {               
  2.         echo('<option value="'.$liste2[1].'">'.$liste2[1].'  '.$liste2[0]."</option>" );
  3.       }


 
Ensuite, il faudra faire une requete pour récup le texte.
 
Après il reste l'AJAX, qui peut etre utile ( suivant ce que tu veux faire )
 
Pierre


Message édité par Lord II le 17-03-2006 à 15:39:36
Reply

Marsh Posté le 17-03-2006 à 15:39:16    

eagle84 a écrit :

salut
merci pour ta reponse, le probleme c'est que strpos me retourne la position est pas le caractére ou la chaine de caractere (texte) qu'il ya aprés


 
Je n'ai pas dit que strpos répondrait totalement à ta demande. Mais avec un petit peu de bon sens, on peut arriver facilement à la solution. Il faut combiner à strpos une autre fonction

Reply

Marsh Posté le 17-03-2006 à 15:44:16    

Merci pour votre precieuse aide.
 
cette combine marche parfaitement
 

Code :
  1. while ($liste2=mysql_fetch_array($libelle2)) {               
  2.           echo('<option value="'.$liste2[0].'">'.$liste2[1].'  '.$liste2[0]."</option>" );
  3.       }


 
 :)


Message édité par eagle84 le 17-03-2006 à 15:44:38

---------------
Feed-Back
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed