最初のフィールドは批評家のタイトル、2 番目のフィールドは批評家の内容です。タイトル フィールドに何かを書き込むと、データベースに Critic オブジェクトが自動的に作成されます。この状況では、新しい批評家の新しい行がありますが、コンテンツのフィールドでは値が null です。この場合、確認ダイアログが表示されます。
確認ダイアログが表示されたら、「OK」ボタンをクリックして、新しいテンプレートにリダイレクトされる以外に、Controller の eliminarCriticaAction を実行するにはどうすればよいですか。
$('a').on('click', function(e) {
if( ! $('#criTitulo').val() || ! $('#criContenido').val() ) {
if ( ! $('#criTitulo').val() && $('#criContenido').val() ) {
if(! window.confirm( 'Falta el titulo' )) {
e.preventDefault();
}
}
else if ( ! $('#criContenido').val() && $('#criTitulo').val() ) {
return confirm('Falta el contenido');
}
}
});
コントローラーの削除アクション:
public function eliminarCriticaAction($pysStr)
{
$em = $this->getDoctrine()->getManager();
$pys = $em->getRepository('PYSBundle:Pys')->findPys($pysStr);
$usuario = $this->get('security.context')->getToken()->getUser();
$critica = $em->getRepository('UsuarioBundle:Usuario')->findCritica($usuario, $pys);
if(!$critica)
{
throw new AccessDeniedException("No hay ninguna crítica que borrar");
}
$em->remove($critica);
$em->flush();
}
編集
$('a').on('click', function(e) {
var titulo = $('#criTitulo').val(), contenido = $('#criContenido').val();
console.log(titulo);
console.log(contenido);
if ( ( titulo && !contenido ) || ( !titulo && contenido ) ) {
e.preventDefault();
console.log('Link clicked !');
if (window.confirm( 'Falta el titulo' )) {
$.get(Routing.generate('eliminar_critica.' + $('html').attr('lang'), { "_locale": $('html').attr('lang'), "pysStr": $('section').attr('pelicula') }));
window.location.href = $(e.target).attr('href');
}
}
});