Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je me suis mis dans général car je n'ai pas trouvé autre part mettre ce post. Le soucis de ce sujet doit être principalement de l'ordre de PHP, mais comme ma prog est avec Zend, je me permets de poser la question ici.
J'ai un formulaire avec un champs input que je souhaiterais convertir en format url. Par exemple :
bibi est allé à la pèche => bibi-est-alle-a-la-peche
Au passage existe t-il un fonctionnalité de zend qui ferais ce travail mieux que moi ?
Pour cela je passe par JQuery avec la fonction suivante en faisant de l'ajax :
$('#panel-tags input[type=submit]').click(function() { var tags = $('#panel-tags input[name=addtag]').val(); $.ajax({ url : '/ajax/tags/save/', type : 'get', data : {tags : tags}, success : function(data) { } }); return false; });
Ensuite je récupère les valeurs dans l'action save du controller tagsController :
class Ajax_TagsController extends Core_Controller_Action_Ajax { public function saveAction() { $array = array(); $saveTags = array(); if(!empty($this->_request->tags)) { $tags = explode(',', $this->_request->tags); $formatUrl = new Core_Filter_FormatUrl; $Mtags = new Core_Db_Models_Tags; $listTags = $Mtags->get(); foreach($tags as $tag) { $tag = (string) trim($tag); foreach($listTags as $listTag) { if($listTag->name != $tag) { $tagObj = new stdClass; $tagObj->name = $tag; echo $tagObj->tag = $formatUrl->filter(utf8_decode($tag)); <-- ECHO pour le débug } } } } //echo json_encode($array); $this->_helper->viewRenderer->setNoRender(); } }
Dans la classe Core_Controller_Action_Ajax, il y a juste ceci :
public function init() { parent::init(); if(!$this->_request->isXmlHttpRequest()) { $this->_redirect(); } $this->_helper->getHelper('layout')->disableLayout(); }
Bon après j'ai deux filter donc les fonctions principales sont, une pour supprimer les caractère spéciaux, qui fonction et une autre :
public function filter($value) { $pieces = array('à'=>'a', 'á'=>'a', 'â'=>'a', ----- 'ÿ'=>'y', 'ñ'=>'n', 'ç'=>'c'); foreach($pieces as $accent => $noAccent) { $value = preg_replace('/' . $accent . '/', $noAccent, $value); } return $value; }
qui permet de supprimer les accents.
Le souci c'est que l'accent reste affiché. Avez vous une idée d'où cela pourrait provenir ?
Merci infiniment de votre aide.
Bien cordialement.
Dernière modification par nicko (04-03-2010 08:04:27)
Hors ligne
regarde de ce côté http://www.mibhouse.org/pokemon_jojo/ph … nce-ascii/
Hors ligne
Hello,
Je pense que tu peux t'aider en te basant sur l'article suivant : http://www.ericmery.fr/blog/ecriture-du … ne-chaine/
L'avant dernière proposition marche également mais ne s'intègre pas directement dans les développements avec le Zend Framework.
A adapter éventuellement pour qu'il réponde parfaitement à tes besoins.
Cordialement,
Elkolonel
Hors ligne
Merci pour vos aides.
La méthode de 3uclide marche bien, je l'ai remplacé dans mon scripts filter. Mais j'ai tout de même gardé de coté.
On ne sait jamais
Bien cordialement.
Hors ligne