Blz Amigos,
Como faço via ajax para atualizar um renderPartial.
Tipo eu tenho um upload de imagem na mesma pagina e um renderPartial que lista as fotos. Eu gostaria que apos envia-se as fotos atualiza-se este render que esta listando as fotos.
Valew
O upload já é feito com ajax? Se sim, basta executar no callback desse upload uma função que irá chamar uma action que vai renderizar somente o conteúdo da lista de fotos.
Estou desenvolvendo um sistema que trabalha com Tabs do bootstrap, em uma aba aparece sobre a empresa, na outras as lista de fotos, e na outra um upload de imagem.
Quando carrega o model blz carrega sobre a empresa, as fotos relacionadas e o upload.
O problema é o seguinte quando ele envia novas images via uploadfy, cadastra tudo ok. Mas a minha duvida é como fazer para atualizar a lista de fotos e pretendo fazer um esquema de deletar a foto, como fazer para atualizar este render nesta aba.
Utilizo esta extensao
meu codigo:
_listafotos.php
<div class="list-view">
<ul class="thumbnails">
<?php
foreach($model->fotosempresas as $foto):
?>
<li class="thumbnail">
<a href="#" rel="tooltip" data-title="Foto Empresa">
<img src="/fotos/thumbs/<?php echo $foto->arquivo; ?>" alt="">
</a><br />
<?php echo funcao::statusHelper($foto,"Fotosempresa") ?>
</li>
<?php
endforeach;
?>
</ul>
</div>
view.php
...codigo html da aba
<?php $this->renderPartial("_listafotos",array('model'=>$model),true); ?>
Tem o CListView, acho que daria para adapitar mais alguem poderia me dar uma exemplo como posso estar fazendo isso.
Alguem poderia me ajudar…ja quebrei a cabeça horas e nada…
Cara, pensa em como você faria isso normalmente em php, sem o framework. O que você precisa fazer é exatamente a mesma coisa.
Depois que o upload é feito, você precisa executar uma outra requisição ajax para trazer o a lista de fotos atualizadas. Não é assim que você faria?
No seu controller você cria uma action que vai responder essa requisição retornando somente a lista de fotos, utilizando o o renderPartial, da mesma forma que você fez na view. Ai é só pegar o que essa action retornou e atualizar a exibição no html.
Você sabe jQuery e tudo mais pra fazer esse update, certo? A idéia é essa, ai você só precisa da uma adaptada pra ajustar com o que você tem ai.
Para deletar as fotos é a mesma coisa. Você vai criar um botão que quando clicado vai executar uma requisição ajax para uma action que deleta o arquivo e depois recarrega os dados, também via ajax, para repopular a lista.
Se quiser um exemplo, da uma olhada nos códigos da CGridView e, acho, na CButtonColumn, pra ver como eles fazem isso lá.
Coloque dentro de um div e use a função load() do jquery pra chamar a action, assim que vc receber o callback do upload.