Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>Carregando comentários...