0
私はajaxを使用してオブジェクト(ステータス)の値を変更していますが、ajaxが呼び出されると、オブジェクトは変更されますが、ページは再ロードされます。 は、ここに私のテンプレートです:ajaxがロードされたテンプレート内で呼び出された場合、Ajaxは機能しませんか?
<table id="datatable" class="tabela">
<thead>
<tr>
<th>RA</th>
<th>Ações</th>
</tr>
</thead>
<tbody>
<g:each var="aluno" in="${listaAluno}">
<tr>
<td>${aluno.ra}</td>
<td>
<g:link action="editar" controller="aluno" params="[id:aluno.id]"> <i class="fa fa-pencil button edit"></i></g:link>   
<g:link onClick="inativar('/aluno/inativar/${aluno.id}', 'divForm', '${aluno.nome}')"> <i class="fa fa-trash button delete"></i></g:link>
</td>
</tr>
</g:each>
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function() {
$('#datatable').dataTable({colReorder: true});
});
</script>
AJAX:
function inativar(metodo, div, objeto) {
var confirmar = confirm("Realmente deseja remover " + objeto + " ?");
if (confirmar) {
$.ajax({
url: metodo,
type: "GET",
dataType: 'text',
success: function (data) {
$("#" + div).html(data);
}
});
}
}
と方法:
def inativar(){
Aluno aluno = Aluno.get(params.id)
aluno.status = false
aluno.save(flush: true)
def listaAluno = Aluno.findAllByStatus(true)
render(template:"list", model:[listaAluno:listaAluno])
}
は私が何をしないのですか?
は、それを試してみました。このエラーを得た:エラー評価される式[aluno.id]行の[30]:nullオブジェクトにプロパティ 'ID' を取得できません。そして、それは非常に良い選択肢ではありません。なぜなら、多くのページでそのajaxを使用するつもりです。 – xSlok
aluno.idがnullの場合、JSエラーではありません。最初に、このIDをオブジェクトをレンダリングする前に設定します。また、jquery $(document).ready(function(){});ページの読み込みに負荷がかかる。 –
このメソッドは正しく動作し、オブジェクトは変更されますが、問題はページがその後に再読み込みされることです。 – xSlok