isso é pq você está selecionando o valor errado no javascript:
var avatar = $("input[id*='avatar']").val();
isso seleciona o valor de um input que começa (ou contêm, não lembro o que o * significa) com avatar.
o que vc queria fazer eh selecionar o valor do radio button que vc acabou de clicar, certo? isso vc faz assim:
-coloque class=“avatar” em todos os radiobuttons do avatar
$("input.avatar").click(function() { //ao clicar no radiobutton
var avatar = $(this).val(); //valor do input que foi clicado
//o resto do código
});
Deu boa Lucas!!! Valeu pela força! =)
A função ajax() ficou assim:
<script type="text/javascript">
$(document).ready(function() {
$("input.avatar").click(function() {
// inicio do codigo ajax
var avatar = $(this).val();
var idImovel = "${imovel.idImovel}";
$.post('/imobiliaria/foto/atualizaAvatar',
{'idImovel': idImovel, 'avatar.idFoto': avatar},
function() {
window.location.reload(),
alert('Avatar selecionado com sucesso!');
});
// final do ajax
});
});
</script>
Envia a id do imovel e a id do avatar, após isso recarrega a janela e em seguida mostra o alerta de sucesso.
Como já têm a janela de alerta, removi a mensagem de sucesso de alteração enviada pelo Controller.
Abraço!!