brshare 0 Denunciar post Postado Agosto 11, 2009 Ola pessoas onde ta o erro na parada abaixo? Quando input #secao é selecionado o input #categoria eh carregado porem o jquery esta cortando as palavas com acentos. <?php final class AcervoController extends ActionController{ public function init(){ $this->_request->setParam('format','json'); $this->_helper->getHelper('AjaxContext') ->addActionContext('getcategoriasbysecao','json') ->initContext(); } public function getcategoriasbysecaoAction(){ if(!$this->_request->isXmlHttpRequest()){ $this->_redirect("/"); } $this->view->categorias = $this->createQuery()->from("Categoria as c")->where("c.cod_secao=?",$this->_request->getParam("secao"))->orderBy("c.nome")->execute()->toArray(); } $().ready(function(){ $("#pesquisa form #secao").change(function(){ if($(this).val()==''){ $("#pesquisa form #categoria optgroup option").remove(); $("#pesquisa form #categoria").attr("disabled",true); return false; } $('#pesquisa form #categoria').ajaxStart(function(){ $(this).attr("disabled",true) $("#pesquisa form #categoria optgroup option").remove(); }); $('#pesquisa form #categoria').ajaxStop(function(){ $(this).attr("disabled",false); }); $.getJSON($('#baseurl').val()+'acervo/getcategoriasbysecao',{secao:$("#pesquisa form #secao").val()},function(data){ $.each(data.categorias, function(i,categoria){ $("#pesquisa form #categoria optgroup").append('<option value="'+categoria.cod+'">'+categoria.nome+'</option>'); }); }); }); }); <div id="pesquisa"> <div id="top"></div> <div id="body"> <form method="post"> <label for="keyword">Pesquisar por:</label> <input name="keyword" type="text" /> <select name="criterio"> <option>Titulo</option> <option>Descrição</option> <option>Autor</option> <option>ISBN</option> </select> <label for="secao">Filtrar por:</label> <select id="secao" name="secao"> <option>Seção</option> <optgroup label="------------------------"> <?php foreach($this->secoes as $secao):?> <option value="<?php echo $secao->cod;?>"><?php echo $secao->nome;?></option> <?php echo "\n"; endforeach;?> </optgroup> </select> <select disabled="disabled" id="categoria" name="categoria"> <option>Categoria</option> <optgroup label="------------------------"> </optgroup> </select> </form> </div> <div id="down"></div> </div> O resultado do html depois de renderizado fica mais ou menos assim: <select id="secao" name="secao"> <option>Seção</option> <optgroup label="------------------------"> <option value="7">Administração</option> <option value="10">Ciências exatas</option> <option value="9">Direito</option> <option value="5">Engenharia</option> <option value="4">Geografia e História</option> <option selected="informatica" value="1">Informática</option> <option value="3">Literatura</option> <option value="2">Medicina</option> <option value="6">Religião</option> </optgroup> </select> <select disabled="disabled" id="categoria" name="categoria"> <option>Categoria</option> <optgroup label="------------------------"> <option value="1">An</option> //Aqui deveria ser Análise de Sistemas </optgroup> </select> Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Agosto 11, 2009 Primeiro verifique onde esta o problema. Verifique se o response está com os valores corretos. Caso sim, o problema é com o Javascript. Uma dica, um identificador refere-se a um elemento único, logo não é necessário representar a hierarquia de nós até o elemento: "#pesquisa form #secao" Compartilhar este post Link para o post Compartilhar em outros sites
brshare 0 Denunciar post Postado Agosto 11, 2009 Primeiro verifique onde esta o problema. Verifique se o response está com os valores corretos. Caso sim, o problema é com o Javascript. Uma dica, um identificador refere-se a um elemento único, logo não é necessário representar a hierarquia de nós até o elemento: "#pesquisa form #secao" O response esta correto, ja debuguei o problema esta quando o action controller passa para o view os dados neste caso nao sei se é o zend framework ou o jquery que esta fazendo o a conversão dos dados para o formato Json. sou novato com jquery e entao nao estou conseguindo debugar o jquery Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Agosto 11, 2009 Da um 'echo' no controller, chamando o endereço da requisiçao pelo browser. Compartilhar este post Link para o post Compartilhar em outros sites
brshare 0 Denunciar post Postado Agosto 12, 2009 Da um 'echo' no controller, chamando o endereço da requisiçao pelo browser. Descobri o erro: por ser o JSON um formato de objeto em javascript (JavaScript Object Notation) e pelo simples fato de objetos em javascript não suportar acentos. simples não eh? a teoria explica a pratica... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Agosto 12, 2009 Que bom. Voce pode usar acentos sim, desde que utilize UTF-8. Compartilhar este post Link para o post Compartilhar em outros sites