Bonjour,
Pour faire suite au post http://www.developpez.net/forums/d99...longue-chaine/, je reviens pour la suite de mon application.
J'ai un texte, plutôt long, avec à l'intérieur, des tags bien précis de la forme : [nomduchamp:typeduchamp:valeurduchamp]
Dans l'autre poste un membre aguairit m'avait donné l'astuce pour transformer ces tags en vrai champ de formulaire. Par la suite, j'ai cherché un peu, car une fois que mon formulaire est validé, il faut que j'enregistre le même texte avec les mêmes tags. Du coup, j'ai fait l'opération inverse en ajoutant les nouvelles valeurs saisies.
Par contre, j'ai un problème avec les champs de type select :
[genre:select:Mr/Mme/Melle]
En effet, lors de la première saisie ce champ devient [genre:select:Mr/Mme*/Melle] si c'est une Madame. Par contre lors de la modification du texte, mon code permettant de mettre '*' à côté de la valeur saisie ne fonctionne pas comme il se doit. Si je ne touche pas à ce champ là durant la saisie, une deuxième étoile apparait. Si je choisi Mr, une étoile se met à côté de Mr et l'autre étoile reste sur Mme.
Voilà mon code permettant d'ajouter l'étoile :
$matches[2] est égal à 'Mr/Mme*/Melle'
$z est égal à la valeur qui a été saisi
Comment faire pour virer l'étoile et la mettre devant la bonne valeur (même si aucune modification n'a été apporté, il faudrait virer l'* et la remettre au bon endroit).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if ($matches[2] == "select") { $z = preg_replace('/('.$z.')/i','$1*',$matches[3]); $s = "[$matches[1]:$matches[2]:$z]"; }
Pour info, je ne connais pas à l'avance les noms des champs, ni leur nombre.
J'espère que vous pourrez m'aider.
Partager