javascript - 用于插入、更新和删除数据库项目的 AJAX 代码

标签 javascript jquery ajax symfony doctrine-orm

我有这个 dropdwonlist,这些数字是选票,我的提示很简单:如何通过按“-”删除数据库的投票,当我按任何其他数字时,投票将在数据库中更新有这个值吗?

下拉列表的默认值为votacion.votCalificacion,即数据库中的投票值

这是投票的下拉列表:

<form id="post">
    <select id="cd-dropdown" class="cd-select">
        <option value="-1" selected>{{ voto.votCalificacion }}</option>
        <option>-</option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        <option>10</option>
    </select>
</form>

这是 Controller 管理投票的功能:

public function gestionarVotoAction($pysStr, $votCalificacion)
{
    $em = $this->getDoctrine()->getManager();
    $pys = $em->getRepository('PYSBundle:Pys')->findPys($pysStr);
    $usuario = $this->get('security.context')->getToken()->getUser();

    $voto = $em->getRepository('UsuarioBundle:Usuario')->findVoto($usuario, $pys);

    if(!$voto) 
    {
        $voto = new Voto($usuario, $pys);
    }

    if ($votCalificacion == "-") 
    {
        $em->remove($voto);
    }
    else
    {
        $voto->setVotCalificacion($votCalificacion);
        $voto->setVotFecha(new \DateTime("now"));

        $em->persist($voto); 
    }

    $em->flush();
    return $this->redirect($this->generateUrl('usuario_pelicula', array('pysStr' => $pysStr)));
}

最佳答案

这里你可以举个例子:

A voting system with jQuery, PHP and Smarty

并且,为了正确管理 jQuery,这里有一些您可能知道的函数:

jQuery.ajax() 用于 AJAX 请愿 http://api.jquery.com/jQuery.ajax/

jQuery.load() 用于 AJAX 请愿,这会导致页面中某处加载新内容 http://api.jquery.com/load/

编辑: 经过几次聊天后,答案如下:

$('#cd-dropdown').bind("change", function(){ 
  ajaxVotar($('#cd-dropdown').val(), $('#id-pelicula').val()); 
}); 


function ajaxVotar(voto, pelicula) 
{ 
  $.getJSON('/app_dev.php/es/user/pelicula/'+pelicula+'/'+voto, function(j){ 
    alert(j.result); 
    $('#votacion-media-peli').html(j.media); 
    // Customize whatever you want...
  }); 
}

整个聊天 session 在这里:https://chat.stackoverflow.com/rooms/33245/discussion-between-dani-sancas-and-benatespina

关于javascript - 用于插入、更新和删除数据库项目的 AJAX 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17568111/

相关文章:

javascript - 如何在构造函数中设置javascript私有(private)变量?

javascript - 为什么在动态加载数据时 jqGrid 不显示第二页?

javascript - 为什么我在浏览器中看不到我的应用程序渲染(Marionette.js 教程)?

javascript - 如何获取父节点的子节点并使用 jquery ajax 处理它

javascript - 如何在点击父div jquery时显示下一个div

ajax - jQuery.ajax 返回 400 错误请求

javascript - 如何在 asp.net 中从 c# 运行 javascript

javascript - 如何在 Vue.js 中获取购物车商品的总价格并乘以数量

javascript - 如何为计时器使用 Ajax 响应值?

javascript - AJAX 多图像 uploader 出错